Проблема Вывод дочерних пунктов главного меню

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

  1. Offline

    jimhucksly Недавно здесь

    Регистрация:
    10.12.2014
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    Помогите разобрать с пунктами меню. Нужно вывести дочерние пункты главного меню, но по шаблону у них другой стиль.
    По шаблону должно быть так:

    Код (html):
    1. <ul>
    2. <li><a href="#" class="active"><p>компания</p><span></span></a>
    3. <div class="secmenu sec1">
    4. <ul>
    5. <li class="startli"><a href="#">История компании</a></li>
    6. <li><a href="#our_val">Наши ценности</a></li>
    7. <li><a href="#our_rew">Наши награды</a></li>
    8. <li class="lastli"><a href="#cont">Контакты</a></li>
    9. </ul>
    10. </div>
    11. </li>
    12. <li><a href="#"><p>почему ион</p><span></span></a></li>
    13. <li><a href="#"><p>академия</p><span></span></a></li>
    14. <li><a href="#"><p>карьера</p><span></span></a></li>
    15. <li><a href="#"><p>вакансии</p><span></span></a></li>
    16. <li class="lastli"><a href="#"><p>анкета</p><span></span></a></li>
    17. </ul>


    Для вывода главного меню использую стандартный модуль mod_menu. Сейчас все пункты и подпункты выводятся в одну строчку
     
    Последнее редактирование модератором: 15.12.2014
  2.  
  3. shure348
    Offline

    shure348 Активист

    Регистрация:
    21.08.2012
    Сообщения:
    145
    Симпатии:
    27
    Пол:
    Мужской
    скорее всего подразумевается у дочерних списков position: absolute; как минимум, ну и display: none;
     
  4. Offline

    jimhucksly Недавно здесь

    Регистрация:
    10.12.2014
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    дело не в стилях. Мне нужно получить массив дочерних пунктов меню $item->getChildren() не работает. Как по другому получить этот массив?
     
  5. shure348
    Offline

    shure348 Активист

    Регистрация:
    21.08.2012
    Сообщения:
    145
    Симпатии:
    27
    Пол:
    Мужской
    т е и главные и подпункты выводятся одним сплошным массивом?
     
  6. Offline

    jimhucksly Недавно здесь

    Регистрация:
    10.12.2014
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Мужской
    --- добавлено: 15.12.2014 ---
    Да, именно, в одну строку и одним стилем. Из за этого и верстка съезжает. Надо получить отдельно массив дочерних пунктов и применить другой стиль к ним
     
  7. shure348
    Offline

    shure348 Активист

    Регистрация:
    21.08.2012
    Сообщения:
    145
    Симпатии:
    27
    Пол:
    Мужской
    открыл дефолтный шаблон mod_menu
    там один foreach и внутри условия
    Код (PHP):
    1. if ($item->id == $active_id) {
    2. $class .= ' current';
    3. }
    4.  
    5. if (in_array($item->id, $path)) {
    6. $class .= ' active';
    7. }
    8.  
    9. if ($item->deeper) {
    10. $class .= ' deeper';
    11. }
    12.  
    13. if ($item->parent) {
    14. $class .= ' parent';
    15. }

    и еще парочка, но разбираться лень
    откройте сами и посмотрите
    классы расставятся и можно будет стилизовать

    /modules/mod_menu/tmpl/default.php если что
     
  8. OlegM
    Offline

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

    Регистрация:
    12.04.2007
    Сообщения:
    4 310
    Симпатии:
    375
    Пол:
    Мужской
    Вообще не понимаю проблемы...

    В этом модуле вряд ли так получится. Там всё через foreach сделано (см. helper.php).
    И зачем лезть в PHP-код, если всё можно сделать на CSS?

    Но если очень хочется, то можно использовать $item->level, сравнивать текущий с предыдущим и следующим, добавлять свои CSS-классы... Часть этого уже сделана в helper.php и в шаблоне (@shure348 показал кусок кода)
     

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

Загрузка...