Разбор ссылки с языковым префиксом - отрезать /en/

Главные вкладки

Аватар пользователя orangeudav orangeudav 12 ноября 2010 в 10:57

Ткните меня плиз в каком месте в друпале происходит обратное преобразование из en/node/4 в node/4.

Нашел функцию language_url_rewrite (которая добавляет языковой префикс в зависимости от выбранной схемы работы с языком), а существует ли ее обратный вариант?

Комментарии

Аватар пользователя orangeudav orangeudav 12 ноября 2010 в 11:31

мда, сам спросил - сам отвечаю, пойдем простым путем

<?php
function language_url_derewrite($query) {
  switch (
variable_get('language_negotiation'LANGUAGE_NEGOTIATION_NONE)) {
    case 
LANGUAGE_NEGOTIATION_PATH_DEFAULT:
    case 
LANGUAGE_NEGOTIATION_PATH:
      
$langs language_list();
      foreach (
$langs as $language) {
        
$prefix $language->language '/';
        if (
drupal_substr($query0drupal_strlen($prefix)) == $prefix) {
          return 
drupal_substr($querydrupal_strlen($prefix));
        }
      }
      break;
  }
  return 
$query;
}
?>
Аватар пользователя seaji seaji 19 ноября 2010 в 14:01

Почему то у меня было проще:
на русской части

<?php
$vars
['select_language'] = '<div id="lang-ru" class="round">Русский</div>';
$vars['select_language'] .= '<div id="lang-en" class="round">'l('English''en/'$_GET['q']) .'</div>';
?>

на английской части

<?php
$vars
['select_language'] = '<div id="lang-ru" class="round"><a href="'.$base_path.$_GET['q'].'">Русский</a></div>';
$vars['select_language'] .= '<div id="lang-en" class="round">English</div>';
?>
Аватар пользователя yasik yasik 12 декабря 2011 в 3:05

А можно пример использования
language_url_rewrite вызывается прямо из Функции url
такой код $GLOBALS['base_url'].url('gmap/'.$node->nid) выводит ссылку с префиксом, а мне надо в независимости языка без префикса