Собственная картинка для каждого пункта меню

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

Аватар пользователя zusul zusul 11 сентября 2010 в 20:38

Возникла необходимость для пунктов одного из меню прикрутить типа иконок, чтоб перед каждым пунктом была своя картинка.
Понятно, что на хтмле это сделать оч просто, но делать меню на хтмле и втыкать его потом в сайт на друпале, имхо, изврат тот еще. Вот и возник у меня вопросик.. как на друпале такую штуку реализовать? наверняка есть модуль какого-нить хитрого меню, чтоб можно было вставлять перед пунктами картинки, желательно с автоматическим ресайзом. Чтоб было нагляднее, вот на этом сайте www . coral . ru (уберите из адреса пробелы) слева менюшка из стран и там как раз перд каждым пунктом картинка в виде флага

Комментарии

Аватар пользователя zusul zusul 11 сентября 2010 в 20:54

stddos
а как мне поможет в этом цсс? у меня проблема не в том, чтобы прицепить картинку для отдельного пункта меню или для группы пунктов, а в том, чтобы через админ-панель назначать для каждого произвольного пункта меню свою картинку

Аватар пользователя Empiric@drupal.org Empiric@drupal.org 11 сентября 2010 в 21:13

Надо переписать функцию вывода меню в темплейт.пхп.
Например, транслитерировать название на англ, отрезать до 6 символов, присвоить как класс:

<?php
function translitIt($str
{
    
$tr = array(
        
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
        
"Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I",
        
"Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
        
"О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
        
"У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
        
"Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"",
        
"Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b",
        
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j",
        
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
        
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
        
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
        
"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
        
"ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"," "=>""
    
);
    return 
strtr($str,$tr);
}
 

function 

phptemplate_menu_item_link($link) {
    
$i=0;
  if (empty(
$link['options'])) {
    
$link['options'] = array();
  }

$translit_class=substr(strtolower(translitIt(check_plain($link['title']))),0,7);

  

$link['options']['attributes']['title'] = check_plain($link['title']);
  
$link['options']['attributes']['class'] .= 'menu-'.$translit_class;

  

// If an item is a LOCAL TASK, render it as a tab
  
if ($link['type'] & MENU_IS_LOCAL_TASK) {
    
    
$link['title'] = '<span class="tab">' check_plain($link['title']) . '</span>';
    
$link['options']['html'] = TRUE;

    

  }

  if (empty(

$link['type'])) {
    
$true TRUE;
  }

  return 

'<span class="span-' $translit_class '">' l($link['title'], $link['href'], $link['options']) . '</span>';
}
?>