Imageset и многоязычность - путаются картинки пунктов меню

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

Аватар пользователя dikovina dikovina 27 августа 2009 в 21:41

Никто не сталкивался с такой проблемой? Когда делаешь пункты меню картинками при помощи Imageset, то трудно сделать многоязычное меню: когда пути пересекаются (например, на главную страницу), может вылазить не та версия картинки в меню, не английская, а русская, а наоборот.

У меня пока нет идей, как это фиксить, может че-то не то делаю? У меня два графических меню в двух разных картинках и два разных меню, англ. и рус.

Комментарии

Аватар пользователя pvb-d pvb-d 27 сентября 2009 в 7:45

1. переопределить вывод theme_imageset в вашей теме в файле template.php

<?php
function phptemplate_imageset($name$index NULL$attributes NULL) {
  global 
$locale;

  if (!isset(

$index)) {
    if (
preg_match('/(\w+):(\d+)/'$name$matches)) {
      
$name $matches[1];
      
$index $matches[2];
    }
  }
  
$isname str_replace('_lang'$locale$name);
  
$img _imageset_imageset($isnameTRUE);
  if (!isset(
$img)) {
    
$isname str_replace('_lang'''$name); // default imageset
  
}
  return 
theme_imageset($isname$index$attributes);
}
?>

2. создавать сеты с наборами по языкам с именами заканчивающимися на ИД языка (buttonru, buttonen, buttonfr и др)
Один сет создать без ИД в имени (button) для языка по-умолчанию, будет использоваться в случае добавления нового языка для которого сета нет.

3. создать сет с именем button_lang (файл можно загрузить любой, он использоваться не будет), его мы будем использовать для связи с пунктами меню

Выбирать для пунктов меню сет с именем button_lang.
при генерации странички он будет подменяться в зависимости от текущей локали на buttonru или buttonen, buttonfr и др.