Меню на нескольких языках

08 Сен 2008
Опубликовано VladSavitsky

Решение

Стандартный модуль locale меню на 2х языках не поддерживает, но позволяет иметь свой пункт меню для переведенного материала

  • Для каждого языка создаем меню с названием "Первые ссылки" (на нужном языке) и "машинным" названием "menu-primarylinksru" (для русского языка)
  • Страницы на определенном языке добавляем в соотвествующее меню

Вывод меню в шаблоне

в page.tpl.php вместо

<?php
if (isset($primary_links) ) {
    print theme('links', $primary_links, array('class' => 'links', 'id' => 'navlist'));
}
?>

пишем

<?php
if($language->language=='ru') {
   print theme('links', menu_navigation_links('menu-primarylinksru'), array('class' => 'links', 'id' => 'navlist'));
}
if (isset($primary_links) && $language->language!='ru') {
   print theme('links', $primary_links, array('class' => 'links', 'id' => 'navlist'));
}
?>

где
'menu-primarylinksru' - машинное имя меню
'ru' - машинное имя языка

Для каждого нового языка нужно добавить:

if($language->language=='ru') {
   print theme('links', menu_navigation_links('menu-primarylinksru'), array('class' => 'links', 'id' => 'navlist'));
}


А также условие:
if (isset($primary_links) && $language->language!='ru' && $language->language!='de' ) {

Использованные материалы

Полезные ссылки

 
 
 

RSS-лента новостей

Dries Buytaert по-русски
]]>Русский поиск Drupal]]>

Перенос сайта из Joomla в Drupal
Перенос сайта из WordPress в Drupal

]]> Drupal - это бесплатная система управления контентом с открытым исходным кодом ]]>