Drupal 6x - Первичные ссылки jquery аккордеонное меню - PullRequest
0 голосов
/ 19 октября 2010

Я пытаюсь преобразовать свой основной блок меню ссылок в меню аккордеона jquery ( текст ссылки ). Я протестировал модуль Accordion Menu для Drupal, но он не работает для меня.

Для моего блока первичных ссылок у меня будет более или менее такой вывод html:

    <ul id="accordion">  
             <li>  
               <a href="#recent" class="heading">Recent Entries</a>  
                 <ul id="recent">  
                     <li><span class="date">01.19.2009</span> <a href="#">Recent Entry Title</a></li>  
                     <li><span class="date">01.15.2009</span> <a href="#">Recent Entry Title</a></li>  
                     <li><span class="date">01.13.2009</span> <a href="#">Recent Entry Title</a></li>  
                     <li><span class="date">01.11.2009</span> <a href="#">Recent Entry Title</a></li>  
                     <li><span class="date">01.10.2009</span> <a href="#">Recent Entry Title</a></li>  
                 </ul>  
             </li>

             <li>  
               <a href="#recent" class="heading">Recent Entries</a>  
             </li>  
             <li>  
                 <a href="#popular" class="heading">Popular Entries</a>  
                 <ul id="popular">  
                     <li><span class="date">08.16.2008</span> <a href="#">Popular Entry Title</a></li>  
                     <li><span class="date">06.12.2008</span> <a href="#">Popular Entry Title</a></li>  
                     <li><span class="date">04.12.2008</span> <a href="#">Popular Entry Title</a></li>  
                     <li><span class="date">06.12.2007</span> <a href="#">Popular Entry Title</a></li>  
                     <li><span class="date">03.12.2007</span> <a href="#">Popular Entry Title</a></li>  
                 </ul>  
             </li>  
             <li>  
                 <a href="#categories" class="heading">Categories</a>  
                 <ul id="categories">  
                     <li><a href="#">Category Name</a> <span class="count">7</span></li>  
                     <li><a href="#">Category Name</a> <span class="count">4</span></li>  
                     <li><a href="#">Category Name</a> <span class="count">15</span></li>  
                     <li><a href="#">Category Name</a> <span class="count">29</span></li>  
                     <li><a href="#">Category Name</a> <span class="count">8</span></li>  
                 </ul>  
             </li>

        </ul>

У меня есть несколько первичных ссылок с дочерью:

  • Территория
    • Карта
    • Галерея
  • Продукты
    • Вино
    • очки
  • Контакты

Модуль Devel Themer говорит, что я должен переопределить функцию "theme_menu_item", но я не знаю, как действовать дальше. Могу ли я достичь своей цели, только редактируя эту функцию в файле "template.php"?

Я уверен, что jQuery и jQuery UI работают хорошо, потому что я проверил их с помощью приведенного выше кода в page.tpl.php.

Есть идеи? Спасибо Bye

EDIT

Я прочитал много документов и форумов по друпалу, но не могу найти похожий запрос. Я могу просто редактировать только первичные ссылки HTML без детей, используя этот код, который добавляет тег id к ul

function basic_menu_tree($tree) {
  return '<ul id="accordion" class="menu">'. $tree .'</ul>';

}

Проблема возникает с дочерним ul, фактически вышеупомянутая функция добавляет тег id = "accordion" также к дочернему ul с плохим эффектом для скрипта jquery

Я хочу настроить только HTML-блок блока Primary Link, и я не могу поверить, что нет никаких решений ... Спасибо

* * ОБНОВЛЕНИЕ тысячи сорок-девять

Я решил использовать вышеуказанную функцию в файле template.php и добавить класс заголовка через скрипт jquery к родителям первичной ссылки для установки параметров заголовка jquery ui accordion (http://jqueryui.com/demos/accordion/#option-header)!

Bye

Ответы [ 2 ]

0 голосов
/ 20 октября 2010

В чем проблема добавления jquery accordeon к стандартному выводу основного меню?Там есть все, что вам нужно.

0 голосов
/ 19 октября 2010

Переопределение функций тем - это самая основная вещь, которая делается в темах.

Короткая версия такова, что если вы создаете функцию с именем [theme_name]_menu_item, эта функция будет использоваться для генерации HTML вместо стандартной: theme_menu_item. Так что да, это может быть сделано в вашем template.php.

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

Длинная версия

...