изменение отображения primary и secondary links

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

Аватар пользователя Gumbert Gumbert 25 апреля 2007 в 3:35

По дефолту secondary links выводится в коде с помощью
'links', 'id' => 'subnavlist')) ?>>

По дефолту каждый элемент выводимой ссылки имеет тип "list-item" (то есть ul, li и т.п.).
Как сделать, чтобы primary/secondary линки выводились в виде таблицы (table, div, span) или любого другого элемента, но только не li/ul Smile
Смотрю в коде, где они генерируются и в упор не вижу...

Если просто "голо" выводить в цикле
foreach($secondary_links as $s_item) {
echo '

';
} то естественно выводимые линки не будут корректны.

Комментарии

Аватар пользователя blackvl@drupal.org blackvl@drupal.org 25 апреля 2007 в 9:36

Или, чтобы не портить остальное (эта функция много где используется) напиши в своей теме где Ромка говорит функцию типа
function mythemname_tbl_links {.... как тебе надо, а в месте обращения к ней будет стоять theme('tbl_links',...)

Аватар пользователя mini_me mini_me 25 апреля 2007 в 20:16

Вопрос задавал не я, но получить необходимо меню следующего вида см. приложенный файл.
Где верхнее меню - это Primary links, а правое меню - это Secondary links.

Аватар пользователя steel.ne steel.ne 26 апреля 2007 в 22:43

А что именно из картинки невозможно сделать с использованием ul/li?

Скажи на основе какой темы, напишу тутор )

Аватар пользователя Gumbert Gumbert 26 апреля 2007 в 3:23

Спасибо всем. Возможно, кому-то еще пригодится вот такое решение:

Берется файл includes/theme.php. Дабы не попортить чего другого, полностью копируется функция "theme_links", к примеру, с названием "function theme_my_links( ... ) { ". Внутри функции переделываем код (элементы ul и li) под то, что душе угодно.

Затем в коде (например, в page.tpl.php) вызываем функцию:
<?php print theme('my_links', $secondary_links, array('class' =>'links_sec', 'id' => 'subnavlist')) ?>

Аватар пользователя mini_me mini_me 27 апреля 2007 в 1:03

Например правое меню (secondary links).
Сейчас вообще столкнулись с проблемой шрифтов. В макете использовался нестандартный шрифт Myriad Pro. Заменить его не представляется возможным поэтому придется делать жуткую нарезку и использовать Images в качестве пунктов меню.

Такая же проблема и правым меню. Шрифт там подобрать удалось, но на IE 6 и ниже он выглядит безобразно вот пример http://drinkmann.uninet.lv/user/punkt5.htm. (на IE 7 ОК - там antialiasing срабатывает). Так что это меню придется также через Images делать.

У кого-нибудь есть идеи как вообще такое обойти? А то макет сделали а реализовать его на HTML и CMS не получается Sad

Аватар пользователя AntonL AntonL 21 декабря 2010 в 1:39

Сделал вроде всё как тут написанно.
Скопировал функцию theme_links в файл template.php обозвал её theme_my_links(только переименовал, больше ничего не делал)
в page.tpl.php пытаюсь вывести меню так
print theme('my_links', $secondary_links, array('class' => 'links', 'id' => 'subnavlist')) ;

в результате ничего не выводиться. Что я сделал не так? Может что то забыл?
у меня Drupal 6