Меню Drupal с подменю показывает только подменю текущей страницы. НЕ проблема CSS - PullRequest
1 голос
/ 15 мая 2010

Это не проблема CSS. HTML там нет. Мне нужно меню с подменю, чтобы существовать в HTML на каждой странице. В настоящее время подменю существует только в HTML для подменю, связанного с просматриваемой в данный момент страницей. Вот пример того, на что это ДОЛЖНО быть.

<ul id="menu">
    <li>Page1
        <ul class="sub">
            <li>sub1.1</li>
            <li>sub1.2</li>
            <li>sub1.3</li>
            <li>sub1.4</li>
        </ul>
    </li>
    <li>Page2
        <ul class="sub">
            <li>sub2.1</li>
            <li>sub2.2</li>
            <li>sub2.3</li>
            <li>sub2.4</li>
        </ul>
    </li>
    <li>Page3
        <ul class="sub">
            <li>sub3.1</li>
            <li>sub3.2</li>
            <li>sub3.3</li>
            <li>sub3.4</li>
        </ul>
    </li>
</ul>

Но вот что на самом деле происходит (скажем, я сейчас просматриваю Page2):

<ul id="menu">
    <li>Page1</li>
    <li>Page2
        <ul class="sub">
            <li>sub2.1</li>
            <li>sub2.2</li>
            <li>sub2.3</li>
            <li>sub2.4</li>
        </ul>
    </li>
    <li>Page3</li>
</ul>

Дополнительно, и, возможно, это не имеет к этому никакого отношения, но какой бы элемент списка <li> не относился к странице, на которой я сейчас нахожусь, ему присваиваются эти классы expanded active-trail, а любые другие <li> collapsed класс.

Классы не так уж и серьезны, проблема в том, что контента (html) там нет.

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

Спасибо!

Ответы [ 3 ]

2 голосов
/ 15 мая 2010

Полагаю, вы можете настроить его на странице администрирования меню.

  1. Перейдите на страницу (Администрирование ›Создание сайта› Меню или <a href="http://[drupal" rel="nofollow noreferrer">http://[drupal</a> address]/admin/build/menu).
  2. Выберите меню, над которым вы хотите работать (вы можете попробовать его в меню навигации).
  3. Установите флажки под Развернуто для подменю, которое вы хотите отобразить в развернутом виде. (В приведенном выше примере на странице 1, странице 2, странице 3 должен быть установлен флажок «Расширенный», а не подпункты)
  4. Сохраните конфигурацию.

Вот и все. :)

0 голосов
/ 15 мая 2010

То, что вы получили, это стандартное поведение Drupal. Оно основано на том, что вторичное меню является статическим, а не меню, которое может быть расширено.

Существуют различные модули, которые решают эту проблему. Возможно, вам придется проделать определенную работу, если вам нужно проложить маршрут и т. Д. Я бы порекомендовал хорошие меню У меня был хороший опыт использования этого модуля, который создает меню в виде блока.

0 голосов
/ 15 мая 2010

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

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

На этой странице описано изменение, которое вы можете внести в тему: http://drupal.org/taxonomy/term/6348

Надеюсь, что-то из этого может быть полезным. Предполагалось, что это будет комментарий, но поскольку я не могу комментировать, я поместил его в ответ (пожалуйста, прости меня: <). </p>

...