pimur

Меню с активным пунктом и выводом остальных подкатегорий

Рекомендуемые сообщения

pimur    117

Доброго времени, прошу подсказать по модулю меню идущего из коробки ocstore 2.3

Стандартный код tpl 

<div class="list-group">
  <?php foreach ($categories as $category) { ?>
  <?php if ($category['category_id'] == $category_id) { ?>
  <a href="<?php echo $category['href']; ?>" class="list-group-item active"><?php echo $category['name']; ?></a>
  <?php if ($category['children']) { ?>
  <?php foreach ($category['children'] as $child) { ?>
  <?php if ($child['category_id'] == $child_id) { ?>
  <a href="<?php echo $child['href']; ?>" class="list-group-item active">&nbsp;&nbsp;&nbsp;- <?php echo $child['name']; ?></a>
  <?php } else { ?>
  <a href="<?php echo $child['href']; ?>" class="list-group-item">&nbsp;&nbsp;&nbsp;- <?php echo $child['name']; ?></a>
  <?php } ?>
  <?php } ?>
  <?php } ?>
  <?php } else { ?>
  <a href="<?php echo $category['href']; ?>" class="list-group-item"><?php echo $category['name']; ?></a>
  <?php } ?>
  <?php } ?>
</div>

Меню отлично отрабатывает и не выводит лишние ссылки из других под категорий, а лишь те под категории относящиеся к главному разделу в котором находимся.

Нужно чуток модифицировать и сделать что бы остальные под категории выводились тоже.

<!-- это главные категории -->
<?php foreach ($categories as $category) { ?>
  <?php if ($category['category_id'] == $category_id) { ?>
  <a href="<?php echo $category['href']; ?>" class="list-group-item active"><?php echo $category['name']; ?></a>
  <?php } else { ?>
  <a href="<?php echo $category['href']; ?>" class="list-group-item"><?php echo $category['name']; ?></a>
  <?php } ?>
  <?php } ?>
<!--   Это подкатегории относящиееся к главной категории в которой находимся
  Помогите дописать сюда, что бы выводились и остальные подкатегории -->
<div class="list-group">
  <?php foreach ($categories as $category) { ?>
  <?php if ($category['children']) { ?>
  <?php foreach ($category['children'] as $child) { ?>
  <?php if ($child['category_id'] == $child_id) { ?>
  <a href="<?php echo $child['href']; ?>" class="list-group-item active">&nbsp;&nbsp;&nbsp;- <?php echo $child['name']; ?></a>
  <?php } else { ?>
  <a href="<?php echo $child['href']; ?>" class="list-group-item">&nbsp;&nbsp;&nbsp;- <?php echo $child['name']; ?></a>
  <?php } ?>
  <?php } ?>
  <?php } ?>
  <?php } ?>
</div>

Пс: делаю для себя в свой магазин. Возможно код выше можно сделать более лаконичным и не плодить переборы массивом и можно объединить все в один участок кода.

И да нужно разделить главные категории в отдельный верхний пункт меню, а под категории будут ниже в отдельном пункте меню, по типу табов в бустрап, где название таба это главная категория, вкладка таба - это под категории этой главной категории.

Критика, помощь и тп, буду благодарен помощи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
n3bo    188
<div class="list-group">
  <?php foreach ($categories as $category) { ?>
  <a href="<?php echo $category['href']; ?>" class="list-group-item <?php echo ($category['category_id'] == $category_id)? 'active' : ''; ?>"><?php echo $category['name']; ?></a>
  <?php if ($category['children']) { ?>
  <?php foreach ($category['children'] as $child) { ?>
  <a href="<?php echo $child['href']; ?>" class="list-group-item <?php echo ($child['category_id'] == $child_id)? 'active' : ''; ?>">&nbsp;&nbsp;&nbsp;- <?php echo $child['name']; ?></a>
  <?php } ?>
  <?php } ?>
  <?php } ?>
</div>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
pimur    117

@n3bo

Спасибо, но не выводятся остальные под категории из соседней категории, нужно перебором под категорий вывести все под категории на страницу. А сейчас выходит что остальные подкатегории не доступны пока не перейти в главную категории, потом переключает и показывает уже под категории это главной, а я хочу вывести под категории все .

Изменено пользователем pimur

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу