В Drupal 7 я хочу иметь сайт с отдельными разделами с левым навигационным меню, которое переключается в зависимости от страницы, на которой вы находитесь. Например, я хочу иметь навигацию верхнего уровня, которая приведет вас к разделу, а затем в этом разделе меню будет уникальным для него. Я предполагаю, что мне нужно создать функцию темы в моем файле template.php, чтобы справиться с этим. Может ли кто-нибудь дать мне представление о том, как начать кодировать это?
Drupal 7 - программно переключать меню на сайте
Ответы (2)
Я не уверен на 100%, что подписан на вас, но если да, то вы можете сделать это с помощью модуля блока меню - http://drupal.org/project/menu_block
Если вы говорите об уровнях:
Если у вас есть меню с несколькими уровнями, но вы хотите отображать, скажем, 2-й уровень на страницах, где родительский элемент имеет 2-й уровень, вы переходите к структуре -> блоки -> новый блок меню и выбираете нужное меню, с какого уровня меню начать меню, а затем добавить его туда, где вы хотите, как обычный блок.
Пример:
<ul class="menu">
<li>Menu item 1</li>
<li>Menu item 2</li>
<ul class="menu">
<li>Menu item</li>
<li>Menu item</li>
</ul>
<li>Menu item 3</li>
<li>Menu item 4</li>
<li>Menu item 5</li>
</ul>
В вашем главном меню будут отображаться только пункты меню первого уровня.
Ваш блок меню будет настроен на запуск только со второго уровня, поэтому, если вы находитесь на странице пункта меню 2, в вашем блоке меню будут отображаться пункты меню второго уровня.
Если вы не говорите об уровнях:
Вы можете создать отдельные блоки меню, а затем настроить их отображение только на определенных страницах, перейдя к настройкам видимости блока, затем введя псевдоним узла страницы, на которой вы хотите, чтобы он отображался, и выберите «Только перечисленные страницы» из переключателей. .
Вместо того, чтобы использовать предложение @SpaceBeers, я бы решил вашу проблему, используя Context:
- Я бы определил одно меню для каждой уникальной страницы.
- Используя Context, вы можете связать каждый раздел с меню. Вы бы определили отдельный контекст для каждого раздела.
- Внутри контекста вы должны указать относительный путь к этому разделу в правилах контекста. Затем в контекстной реакции вы должны выбрать блок Drupal, который автоматически создается вашим меню.
В качестве плюса, поскольку контексты являются экспортируемыми, вы можете упаковать их в функции, зафиксировать эту функцию в своем репозиторий управления исходным кодом и разверните его в своих блоках DEV, QA и PROD без необходимости вручную копировать настройки позиционирования меню/блока с сервера на сервер. Другими словами, решение Context + Features обеспечит более надежное и масштабируемое решение в долгосрочной перспективе.