В результате вычленяется название каждой вкладки и вставляется уже хоть в класс, хоть в ИД.
Пришлось правда применять функцию транслитерации - у меня вкладки на русском.
Вопрос, кстати. Это ничего, что я функцию транслитерации поместил прямо в template.php и сама по себе она не нагружает ли каким-то хитрым способом систему?
Комментарии
Вот так это делается в теме zen:
* Duplicate of theme_menu_local_tasks() but adds clearfix to tabs.
*/
function zen_menu_local_tasks() {
$output = '';
// CTools requires a different set of local task functions.
if (module_exists('ctools')) {
ctools_include('menu');
$primary = ctools_menu_primary_local_tasks();
$secondary = ctools_menu_secondary_local_tasks();
}
else {
$primary = menu_primary_local_tasks();
$secondary = menu_secondary_local_tasks();
}
if ($primary) {
$output .= '<ul class="tabs primary clearfix">' . $primary . '</ul>';
}
if ($secondary) {
$output .= '<ul class="tabs secondary clearfix">' . $secondary . '</ul>';
}
return $output;
}
Разместить функцию надо в своем template.php, zen заменить на название своей темы.
О! спасибо! то, что нужно.
А и искал функии по слову 'tabs'...
Нашёл что массив $primary заполняется функцией
return '<li '. ($active ? 'class="active" ' : '') .'>'. $link ."</li>\n";
}
Но вот не пойму где формируется переменная $link. Мне нужно до неё добраться,
чтобы задать нужный мне класс.
Вообще, есть алгоритм поиска функций темизации? Вот как с переменной $tabs, например.
Как искать функции, их формирующие? или это познаётся с опытом?
Тут: http://api.drupal.ru/api/function/theme_links/6
Ну да, смотришь модуль, который создает тот или иной объект на странице и ищешь в нем реализацию hook_theme, в нем перечислены все функции темизации.
Скорее, все-таки не тут, а тут http://api.drupal.ru/api/function/menu_local_tasks/6 и
тут http://api.drupal.ru/api/function/theme_menu_item_link/6
Тоже озадачился подобным вопросом.
В ходе исследования, понял, что надо править THEME_menu_local_task, как именно - нашел тут
http://drupal.org/node/1002038#comment-3844498
В результате вычленяется название каждой вкладки и вставляется уже хоть в класс, хоть в ИД.
Пришлось правда применять функцию транслитерации - у меня вкладки на русском.
Вопрос, кстати. Это ничего, что я функцию транслитерации поместил прямо в template.php и сама по себе она не нагружает ли каким-то хитрым способом систему?