Многие вебмастера задаются вопросом, как создать выделенные пункты меню на сайте «Друпал». Имеется ввиду, что пункт меню должен быть выделен в то время, когда открыт материал, относящийся к этому пункту. По умолчанию этого не происходит. Есть несколько способов, как исправить оплошность.
Вариант неправильный — ручной
Это когда вы вручную в каждом материале задаете родительский пункт меню. Но в итоге у вас будет нагромождение материалов и рано или поздно работать с меню станет затруднительно, т.к. все эти пункты (= публикации) в нем появятся. Если у вас планируется мало публикаций, то можно выбрать такой вариант. Но если их будет много, он категорически не подходит.
Вариант правильный — автоматический
Чтобы его реализовать, нужна таксономия и дополнительные модули.
Первое, что нужно сделать, — это создать словарь с теми терминами, которые будут представлены в нужном вам меню сайта. То есть создаете термины и привязываете их к пунктам меню.
Далее понадобится модуль Menu position. Он как раз-таки позволяет создавать выделение пунктов меню на сайте. Для этого используется инструментал под названием menu position rule. Он после включения модуля появляется во вкладке «Структура». Этот инструмент создает новое правило (или несколько правил), при котором можно к родительскому пункту меню отнести тот или иной тип материала или страницу. То есть, например, пункт меню называется «Блоги» и к нему мы относим тип материала «Блоги». В итоге все материалы этого вида автоматически по умолчанию будут относится к этому пункту — и он будет подсвечиваться, когда открыт любой блог.
Также к пункту меню таким образом можно отнести термины таксономии: либо все термины какого-то словаря, либо только один термин — как вам нужно. Для этого создаем в типах материалов, нужных нам, поле под названием, например, «рубрика» или «категория». И даем возможность при создании материала выбрать флажком нужную категорию, к которой относятся нужные пункты меню. При заполнении материала относим его к нужной категории. Готово! Теперь эта статья высвечивается в нужном пункте. Если все получилось, вы также увидите при редактировании этого меню, что под соответствующими пунктами появились пометки menu position rools. Их, кстати, при редактировании меню можно вручную передвигать от одного пункта к другому.
Но учтите, что новое правило может конфликтовать с другим правилом и в таком случае работать не будет. Кроме того, конфликт может произойти из-за того, что вы в одном и том же правиле пропишете несколько разных условий. В итоге ни одно из них может не сработать. Например, вы хотите, чтобы на какой-то конкретной странице сайта высвечивался определенный пункт меню. Одновременно вы хотите, чтобы этот же пункт меню высвечивался и тогда, когда открыты материалы определенного типа. Лучше пропишите два разных правила для такого случая. Если вы пропишете это в одном правиле, все может корректно сохраниться, но при этом не будет работать.