Joomla 2.5 Переопределение шаблона стандартного меню

Тема в разделе "Изменение шаблона (кастомизация)", создана пользователем Dark19, 26.12.2014.

  1. Dark19
    Offline

    Dark19 Пользователь

    Регистрация:
    18.08.2014
    Сообщения:
    55
    Симпатии:
    0
    Добрый вечер, передо мною стоит довольно не простая задача, как не пытался сделать, ничего не получается. Подробнее: нужно создать 3-х уровневое меню на joomla 2.5. Макет сверстал без проблем, на джумлу натянул все, кроме этого меню: 1.png
    Это меню, которое разворачивается при наведении на пункт меню 1-ого уровня. Пункт меню 2-ого уровня зеленого цвета, но он идет в одном <ul> с пунктами 3-го уровня.

    Вот кусок кода верстки:
    Код (html):
    1. <ul>
    2. <div class="center">
    3. <li class="hover">
    4. <a href="/">Отопление</a>
    5. <div class="drop_menu">
    6. <div class="f_l">
    7.  
    8. <ul>
    9. <li><a href="/shop/category/otoplenie/kotly" class="title">Котлы</a></li>
    10. <li><a href="/shop/category/otoplenie/kotly/nastennye-gazovye-kotly">Настенные газовые котлы</a></li>
    11. <li><a href="/shop/category/otoplenie/kotly/napolnye-gazovye-kotly">Напольные газовые котлы</a></li>
    12. <li><a href="/shop/category/otoplenie/kotly/kotly-kondensatsionnye">Котлы конденсационные</a></li>
    13. <li><a href="/shop/category/otoplenie/kotly/tverdotoplivnye-kotly">Твердотопливные котлы</a></li>
    14. <li><a href="/shop/category/otoplenie/kotly/elektricheskie-kotly">Электрические котлы</a></li>
    15. <li><a href="/shop/category/otoplenie/kotly/paketnye-predlozheniia-Buderus">Запчасти и комплектующие к котлам</a></li>
    16. </ul>
    17.  
    18. <ul>
    19. <li><a href="/shop/category/otoplenie/zapchasti-kotlov-kolonok-i-konvektorov" class="title">Радиаторы</a></li>
    20. <li><a href="/shop/category/otoplenie/zapchasti-kotlov-kolonok-i-konvektorov/dlia-kotlov">Панельные стальные радиаторы</a></li>
    21. <li><a href="/shop/category/otoplenie/zapchasti-kotlov-kolonok-i-konvektorov/dlia-kolonok">Секционные</a></li>
    22. </ul>
    23.  
    24. <ul>
    25. <li><a href="/shop/category/otoplenie/turbo-pristavki" class="title">Конвекторы</a></li>
    26. <li><a href="/shop/category/otoplenie/zapchasti-kotlov-kolonok-i-konvektorov/dlia-kotlov">Газовые конвекторы</a></li>
    27. <li><a href="/shop/category/otoplenie/zapchasti-kotlov-kolonok-i-konvektorov/dlia-kolonok">Электрические конвекторы</a></li>
    28. <li><a href="/shop/category/otoplenie/zapchasti-kotlov-kolonok-i-konvektorov/dlia-kotlov">Внутрипольные конвекторы</a></li>
    29. </ul>
    30.  
    31. <ul>
    32. <li><a href="/shop/category/otoplenie/koaksialnye-dymohody" class="title">Печи и камины</a></li>
    33. </ul>
    34.  
    35. <ul>
    36. <li><a href="/shop/category/otoplenie/tsirkuliatsionnye-nasosy" class="title">Теплоаккумуляторы</a></li>
    37. </ul>
    38.  
    39. <ul>
    40. <li><a href="/shop/category/otoplenie/truby" class="title">Расширительные баки</a></li>
    41. </ul>
    42.  
    43. <ul>
    44. <li><a href="/shop/category/otoplenie/fitingi" class="title">Коллекторы для отопления</a></li>
    45. </ul>
    46. <span style="height: 722px;" class="bef"></span>
    47. </div>
    48.  
    49. <div class="f_l">
    50. <ul>
    51. <li><a href="/shop/category/otoplenie/konvektory" class="title">Конвекторы</a></li>
    52. <li><a href="/shop/category/otoplenie/konvektory/gazovye">Газовые</a></li>
    53. <li><a href="/shop/category/otoplenie/konvektory/elektricheskie">Электрические</a></li>
    54. </ul>
    55.  
    56. <ul>
    57. <li><a href="/shop/category/otoplenie/rasshiritelnye-baki-dlia-sistem-otopleniia" class="title">Расширительные баки для систем отопления</a></li>
    58. </ul>
    59.  
    60. <ul>
    61. <li><a href="/shop/category/otoplenie/kamini" class="title">Камины</a></li>
    62. <li><a href="/shop/category/otoplenie/kamini/pechi-na-drovah">Печи на дровах</a></li>
    63. <li><a href="/shop/category/otoplenie/kamini/dymohody">Дымоходы</a></li>
    64. </ul>
    65.  
    66. <ul>
    67. <li><a href="/shop/category/otoplenie/sistema-teplyi-pol" class="title">Система “теплый пол”</a></li>
    68. <li><a href="/shop/category/otoplenie/sistema-teplyi-pol/shkaf-kollektornyi">Шкаф коллекторный</a></li>
    69. <li><a href="/shop/category/otoplenie/sistema-teplyi-pol/dopolnitelnoe-oborudovanie">Дополнительное оборудование</a></li>
    70. </ul>
    71. <span style="height: 722px;" class="bef"></span>
    72. </div>
    73.  
    74. <div class="f_l">
    75. <ul>
    76. <li><a href="/shop/category/otoplenie/zapornaia-armatura" class="title">Запорная арматура</a></li>
    77. <li><a href="/shop/category/otoplenie/zapornaia-armatura/gruppa-bezopasnosti-kotla">Группа безопасности котла</a></li>
    78. <li><a href="/shop/category/otoplenie/zapornaia-armatura/podpitochnye-klapana">Подпиточные клапана</a></li>
    79. <li><a href="/shop/category/otoplenie/zapornaia-armatura/reduktory-vody">Редукторы воды</a></li>
    80. <li><a href="/shop/category/otoplenie/zapornaia-armatura/termostaty-kapiliarnye">Термостаты капилярные</a></li>
    81. <li><a href="/shop/category/otoplenie/zapornaia-armatura/trehhodovye-krany-i-elektroprivody">Трехходовые краны и электроприводы</a></li>
    82. <li><a href="/shop/category/otoplenie/zapornaia-armatura/sharovye-krany">Шаровые краны</a></li>
    83. </ul>
    84. <span style="height: 722px;" class="bef"></span>
    85. </div>
    86.  
    87. <div class="f_l">
    88. <ul>
    89. <li><a href="/shop/category/otoplenie/separatory-vozduha-i-shlama" class="title">Сепараторы воздуха и шлама</a></li>
    90. </ul>
    91.  
    92. <ul>
    93. <li><a href="/shop/category/otoplenie/dymohodnye-truby" class="title">Дымоходные трубы</a></li>
    94. <li><a href="/shop/category/otoplenie/dymohodnye-truby/nerzhaveika">Нержавейка</a></li>
    95. </ul>
    96.  
    97. <ul>
    98. <li><a href="/shop/category/otoplenie/termostaty-komnatnye" class="title">Термостаты комнатные</a></li>
    99. <li><a href="/shop/category/otoplenie/termostaty-komnatnye/nedelnyi-programmator">Недельный программатор</a></li>
    100. </ul>
    101.  
    102. <ul>
    103. <li><a href="/shop/category/otoplenie/stabilizatory-napriazheniiaibp-ups" class="title">Стабилизаторы напряжения,ИБП (UPS)</a></li>
    104. <li><a href="/shop/category/otoplenie/stabilizatory-napriazheniiaibp-ups/stabilizator">Стабилизатор</a></li>
    105. <li><a href="/shop/category/otoplenie/stabilizatory-napriazheniiaibp-ups/istochnik-bezpereboinogo-napriazheniia">Источник безперебойного напряжения</a></li>
    106. </ul>
    107.  
    108. <ul>
    109. <li><a href="/shop/category/otoplenie/sistemy-bystrogo-montazha" class="title">Системы быстрого монтажа</a></li>
    110. <li><a href="/shop/category/otoplenie/sistemy-bystrogo-montazha/nasosnye-gruppy">Насосные группы</a></li>
    111. <li><a href="/shop/category/otoplenie/sistemy-bystrogo-montazha/gidrostrelki-gidravlicheskie-razdeliteli">Гидрострелки (гидравлические разделители)</a></li>
    112. <li><a href="/shop/category/otoplenie/sistemy-bystrogo-montazha/grebenki-gidrostrelki">Гребенки-гидрострелки</a></li>
    113. </ul>
    114.  
    115. <ul>
    116. <li><a href="/shop/category/otoplenie/plastinchatye-teploobmenniki" class="title">Пластинчатые теплообменники</a></li>
    117. <li><a href="/shop/category/otoplenie/plastinchatye-teploobmenniki/paianye">Паяные</a></li>
    118. </ul>
    119. <span style="height: 722px;" class="bef"></span>
    120. </div>
    121. </div>
    122. </li></div></ul>


    А вот, код макета переопределения стандартного модуля меню:
    Код (PHP):
    1. <?php
    2. defined('_JEXEC') or die;
    3.  
    4.  
    5. foreach ($list as $i => &$item) :
    6.    $class = 'item-'.$item->id;
    7.  
    8.  
    9.   if($item->level == 1) {
    10.  
    11.   echo '<li class="hover">';
    12.  
    13.  
    14.  
    15.   switch ($item->type) :
    16.   case 'separator':
    17.   case 'url':
    18.   case 'component':
    19.   require JModuleHelper::getLayoutPath('mod_menu', 'default_' . $item->type);
    20.   break;
    21.  
    22.   default:
    23.   require JModuleHelper::getLayoutPath('mod_menu', 'default_url');
    24.   break;
    25.   endswitch;
    26.  
    27.   echo '<div class="drop_menu"><div class="f_l"><ul>';
    28.   }
    29.  
    30.   if($item->level == 2) {
    31.  
    32.   echo '<li>';
    33.  
    34.  
    35.   // Render the menu item.
    36.   switch ($item->type) :
    37.   case 'separator':
    38.   case 'url':
    39.   case 'component':
    40.   require JModuleHelper::getLayoutPath('mod_menu', 'default_' . $item->type);
    41.   break;
    42.  
    43.   default:
    44.   require JModuleHelper::getLayoutPath('mod_menu', 'default_url');
    45.   break;
    46.   endswitch;
    47.   echo '</li>';
    48.  
    49.  
    50.   //echo '<div class="drop_menu"><div class="f_l">';
    51.   }
    52.  
    53.   if($item->level == 3) {
    54.   echo '<li>';
    55.   // Render the menu item.
    56.   switch ($item->type) :
    57.   case 'separator':
    58.   case 'url':
    59.   case 'component':
    60.   require JModuleHelper::getLayoutPath('mod_menu', 'default_' . $item->type);
    61.   break;
    62.  
    63.   default:
    64.   require JModuleHelper::getLayoutPath('mod_menu', 'default_url');
    65.   break;
    66.   endswitch;
    67.   echo '</li></ul></div>';
    68.   }
    69.  
    70. endforeach;
    71. echo '</div></li>';
    72. ?>


    И получаеться такое: 2.png

    Подскажите как правильно переопределить? или что сделать?
     
  2.  
  3. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 812
    Симпатии:
    771
    Пол:
    Мужской
    через суффикс класса меню
    и выбирать пункты вложенных меню через CSS , не трогая логику. Или ставь готовый модуль для меню из JED
     
  4. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 310
    Симпатии:
    375
    Пол:
    Мужской
    Зачем вообще что-то переопределять? Стандартный шаблон меню имеет всё необходимое: нужную вложенность и CSS-классы. Остается только оформить.
     
  5. AKopytenko
    Offline

    AKopytenko Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 963
    Симпатии:
    168
    Пол:
    Мужской
    Тоже не понял...
    Может это тема для типОв, которые ищут себе проблем?))
     

Поделиться этой страницей

Загрузка...