Управление активным / активным следом Drupal с помощью дублирующих пунктов меню - PullRequest
1 голос
/ 16 апреля 2010

Я разрабатываю сайт, требующий дублирования ссылок в меню:

Раздел A
- Введение
- Отзывы

Секция B
- Введение
- Отзывы

Отзывы
- Раздел А
- раздел B

Таким образом, «Раздел A> Отзывы» и «Отзывы> Раздел A» указывают на один и тот же узел. Но независимо от того, какую ссылку меню используют люди, я хочу, чтобы этот человек находился в разделе А.

Проблема в том, что D6 не любит повторяющиеся пункты меню и назначает активные и активные следы классов довольно непредсказуемо.

Поэтому я подумал о том, чтобы создать узел-заполнитель для каждого элемента в меню «Отзывы», а затем задать URL-адрес, например «testimonials / redirect / section-a», а затем использовать mod_rewrite для перенаправления на «section-a». /testimonials".

С этим решением у меня не будет повторяющихся путей в меню. Я просто надеюсь, что это не повредит моему SEO.

Кто-нибудь знает лучшее решение?

Ответы [ 3 ]

3 голосов
/ 06 мая 2011

У меня тоже есть эта проблема. Когда несколько элементов меню ссылаются на один и тот же контент, Drupal будет использовать элемент с самым низким идентификатором меню как канонический - независимо от того, по какой ссылке меню вы щелкнете, вы получите активный след для самого низкого идентификатора меню.

Лучший из известных мне способов исправить это, что мне не нравится, - указывать неканонические пункты меню на узле, который будет перенаправлять на нужный вам узел (вы можете использовать входной фильтр php с drupal_goto или что-то подобное)

К сожалению, модуль path_redirect не решит эту проблему, поскольку пути перенаправления, которые он создает, не могут использоваться в качестве пунктов меню.

Я не уверен, почему в d6 больше людей с таким сценарием использования больше нет - по моему опыту довольно часто хочется, чтобы пункты меню верхнего уровня указывали на первого потомка, и чтобы установить активный след для первый ребенок.

Модуль nodeymlinks решает обратный вариант использования - он позволяет настроить несколько пунктов меню, каждый со своим собственным путем, указывающим на один и тот же узел. поэтому, в зависимости от того, по какой ссылке вы щелкаете в меню, вы получаете другой активный след. этот модуль будет хорошей моделью для модуля «канонический пункт меню».

2 голосов
/ 06 ноября 2013

У нас была та же проблема в нашем проекте, и нам удалось заставить активный трейл работать правильно, устанавливая в каждом дублированном пункте меню "#n" в конце. Например:

Section A
-- Introduction -> node/1#1
-- Testimonials

Section B
-- Introduction -> node/1#2
-- Testimonials

Testimonials
-- Introduction -> node/1#n
-- Section B

не самое симпатичное решение, но определенно более быстрое :) Единственное неудобство, которое мы обнаружили, заключается в том, что если пользователь щелкнет сначала в «Разделе A - Введение» и сразу после в «Разделе B - Введение», страница не будет быть перезагружен.

Надеюсь, что эта помощь

1 голос
/ 31 марта 2014

Меню с несколькими узлами может помочь:

Этот модуль изменяет «Настройки меню» в стандартной форме редактирования узла. чтобы разрешить управление несколькими ссылками меню на узел. Стандарт Drupal поведение должно заботиться только об одной ссылке меню для анода, все остальные ссылки меню должны быть добавлены через меню администрирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...