Ссылки из node/id Multi-Language

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

Аватар пользователя CrazyWu CrazyWu 23 октября 2014 в 16:08

Добрый день.
Имеется сайт с кастомной темой, добавляю 2й язык. переводы лежат в тех же нодах, что страницы на оригинальном языке. При построении меню использую следующий код:

<?php
$items 
get_menu_weight($menuName$language->language);
foreach(
$items as $item) {
   
$alias drupal_lookup_path('alias',$item->link_path,$item->language);
   ...
   if (
$item->link_path == "http://"){
    
$drawItems .= '<li><i>'.$item->link_title.'</i>';
   }else{
    if(
$alias == "/"){
        
$drawItems .= '<li><a href="http://'.$_SERVER['HTTP_HOST'].'/" title="'.$item->link_title.'">'.$item->link_title.'</a>';
    }else{
        
$drawItems .= '<li><a href="http://'.$_SERVER['HTTP_HOST'].'/'.$alias.'" title="'.$item->link_title.'">'.$item->link_title.'</a>';
    }
   }
   ...
}
?>

в случае с языком оригинала ulr возвращается в виде:
mysite.com/mypage
в случае со вторым языком:
mysite.ru/node/id

как привести все к виду основного языка?

Буду рад любым советам так как потратил уже довольно много времени на поиск решения самостоятельно.

Комментарии

Аватар пользователя oploshka oploshka 23 октября 2014 в 17:18

попробуй использовать функцию drupal_lookup_path без указания языка.
В общем посмотреть подобные или эти функции drupal_get_normal_path, drupal_get_path_alias.
Так же было увидено в интернете:
$aliaspath = drupal_get_path_alias(arg(0).'/'.arg(1));
$aliaspath = explode('/', $aliaspath );

В общем я только накидал варианты для размышления... если все совсем печально, то выведи на языке где ссылки не айс print_r($items) и скинь сюда.

Аватар пользователя CrazyWu CrazyWu 26 октября 2014 в 10:27

покрутил варианты с описанными функциями, ни одна из них не вернула алиас, добавленный в перевода только node/id.
мне кажется что то пропущено в настройках языка

Аватар пользователя oploshka oploshka 27 октября 2014 в 10:14

Попробуй корректно настроить модуль pathauto и обнови ссылки. Из вопросов, какой модуль мультиязычности используется? И доступна ли английская версия сайта по красивому адресу?

Аватар пользователя oploshka oploshka 27 октября 2014 в 12:46

Я так понимаю должно быть что то типа http://www.optionrally.com.au/my_page на одном языке и на втором языке http://www.optionrally.com.sa/my_page? такие вещи требуют дополнительной настройки апатча если не ошибаюсь, по крайней мере с вордпрессом было необходимо...

Аватар пользователя CrazyWu CrazyWu 28 октября 2014 в 19:24

Не знаю как объяснить то, что мой пример не работал, но я переписал код:

<?php
$hstpath 
translation_path_get_translations($item->link_path);
array_walk($hstpath, function(&$v$k){$v drupal_get_path_alias($v,$k);});
?>

и проблема решилась.
В любом случае, всем спасибо за помощь

Аватар пользователя CrazyWu CrazyWu 28 октября 2014 в 19:24

Не знаю как объяснить то, что мой пример не работал, но я переписал код:

<?php
$hstpath 
translation_path_get_translations($item->link_path);
array_walk($hstpath, function(&$v$k){$v drupal_get_path_alias($v,$k);});
?>

и проблема решилась.
В любом случае, всем спасибо за помощь