У Primary Links не отображаются подуровни
Прислано: yaguarchik
вс, 21/01/2007 - 18:45
У Primary Links не отображаются подуровни. Кто знает в чем проблема и как ее решить?
У меня Primary Links находятся в left sidebar в виде блока, как меню navigation.
- yaguarchik's blog
- Для комментирования войдите или зарегистрируйтесь
Primary Links как я понял это вообще что-то отдельное =)
лучше другое меню туда вставьте=)
- Для комментирования войдите или зарегистрируйтесь
Но по моему замыслу, это меню должно отличаться от других меню. Я тоже еще не нашел решения. Но ведь child page же можно назначать у primary links, только они не отображаются )
- Для комментирования войдите или зарегистрируйтесь
Только что проверил, drupal 5.0, тема garland. Включил слева блок с primary links, создал два пункта меню, один вложен в другой, все вроде нормально отображается... Или не так понял задачу?!
- Для комментирования войдите или зарегистрируйтесь
Если выводить primary links как блок, то они ничем не будут отличаться от остальных меню.
Проблема возникает когда primary links надо вывести строчкой
<?php print theme('links', $primary_links) ?>
прописанной в page.tmp.php (это для того, чтобы можно было расположить их где угодно, и оформить как угодно).
- Для комментирования войдите или зарегистрируйтесь
> Проблема возникает когда primary links надо вывести строчкой
В теме garland так и сделано. Посмотрите, например, на http://putksebe.ru верхнее меню "Статьи". Когда его выбираешь, появляются пункты "Статьи такой-то" и "Статьи другой-то".
В page.tpl.php это прописано так:
<?php if (isset($primary_links)) : ?><?php print theme('links', $primary_links, array('class' => 'links primary-links')) ?><?php endif; ?><?php if (isset($secondary_links)) : ?><?php print theme('links', $secondary_links, array('class' => 'links secondary-links')) ?><?php endif; ?>
- Для комментирования войдите или зарегистрируйтесь
Вот Dan ответил тут - http://www.drupal.ru/node/3335#comment-16825 на подобный вопрос.
- Для комментирования войдите или зарегистрируйтесь
Как я понимаю, это эффект можно получить, назначая одно меню, как primary и secondary. Но в таком случае 1 уровень этого меню отображается отдельно, второй уровень - отдельно. Как сделать чтобы меню было похоже по структуре на обычное меню (такое как Navigation)? Вообще, хочу сказать, этот способ не очень удобен.
Еще интересный пункт есть в функции theme_links, которая используется для вывода Primary или Secondary (как я понимаю). Это функция назначает для каждого пункта меню свой класс, в котором приписывается уровень, ну а это значит, что если мы пишем в page.tmp.php
print theme('links', $primary_links)
то должно выводиться меню, которое состоит из этих уровней. Но оно выводиться одноуровневое.
- Для комментирования войдите или зарегистрируйтесь
На Drupal.org приводится такое решение проблемы.
Надо Primary links вывести из page.tmp.php такими строчками:
<?php if (isset($primary_links)) { ?>
<?php } ?>
Тогда Primary будут отображаться как меню, а присвоенное Id="primary_menu" позволит нам настраивать меню как захочется.
Я видел это решение раньше, но почему-то не придал ему значения. )
- Для комментирования войдите или зарегистрируйтесь
Пользуюсь таким кодом.
<?php print menu_tree($menu_name = 'primary-links'); ?>
Он не добавляет лишнего ul
- Для комментирования войдите или зарегистрируйтесь
Эта функция menu_tree() практически бесполезна, когда нужно сделать отдельные стили для меню разного уровня, так как при этом выводятся все уровни меню с одним классом.
Например вот как это выглядит в 6:
<?php
...
<div id="primary">
<ul class="menu">
<li class="expanded first">Пункт 1
<ul class="menu">
<li class="leaf first">Пункт 1.1</li>
<li class="leaf last">Пункт 1.2</li>
</ul>
</li>
<li class="expanded">Пункт 2
<ul class="menu">
<li class="leaf first">Пункт 2.1</li>
<li class="leaf last">Пункт 2.2</li>
</ul>
</li>
<li class="expanded">Пункт 3
<ul class="menu">
<li class="leaf first last">Пункт 3.1</li>
</ul>
</li>
<li class="leaf">Пункт 4</li>
<li class="leaf last">Пункт 5</li>
</ul>
</div>
...
?>В итоге все меню с классом "menu"...
Может кто-нибудь подскажет как дописать вывод меню через функцию "menu_tree", но с разными классами... например "sub_menu" для вложенного меню.
- Для комментирования войдите или зарегистрируйтесь








Комментарии