Помогите разобрать с пунктами меню. Нужно вывести дочерние пункты главного меню, но по шаблону у них другой стиль. По шаблону должно быть так: Код (html): <ul> <li><a href="#" class="active"><p>компания</p><span></span></a> <div class="secmenu sec1"> <ul> <li class="startli"><a href="#">История компании</a></li> <li><a href="#our_val">Наши ценности</a></li> <li><a href="#our_rew">Наши награды</a></li> <li class="lastli"><a href="#cont">Контакты</a></li> </ul> </div> </li> <li><a href="#"><p>почему ион</p><span></span></a></li> <li><a href="#"><p>академия</p><span></span></a></li> <li><a href="#"><p>карьера</p><span></span></a></li> <li><a href="#"><p>вакансии</p><span></span></a></li> <li class="lastli"><a href="#"><p>анкета</p><span></span></a></li> </ul> Для вывода главного меню использую стандартный модуль mod_menu. Сейчас все пункты и подпункты выводятся в одну строчку
дело не в стилях. Мне нужно получить массив дочерних пунктов меню $item->getChildren() не работает. Как по другому получить этот массив?
--- добавлено: Dec 15, 2014 --- Да, именно, в одну строку и одним стилем. Из за этого и верстка съезжает. Надо получить отдельно массив дочерних пунктов и применить другой стиль к ним
открыл дефолтный шаблон mod_menu там один foreach и внутри условия Код (PHP): if ($item->id == $active_id) { $class .= ' current'; } if (in_array($item->id, $path)) { $class .= ' active'; } if ($item->deeper) { $class .= ' deeper'; } if ($item->parent) { $class .= ' parent'; } и еще парочка, но разбираться лень откройте сами и посмотрите классы расставятся и можно будет стилизовать /modules/mod_menu/tmpl/default.php если что
Вообще не понимаю проблемы... В этом модуле вряд ли так получится. Там всё через foreach сделано (см. helper.php). И зачем лезть в PHP-код, если всё можно сделать на CSS? Но если очень хочется, то можно использовать $item->level, сравнивать текущий с предыдущим и следующим, добавлять свои CSS-классы... Часть этого уже сделана в helper.php и в шаблоне (@shure348 показал кусок кода)