[Помогите] Модуль Категории/выводить только подкатегории

Тема в разделе "OpenCart", создана пользователем Елена8, 5 янв 2014.

  1. Елена8

    Елена8

    Регистрация:
    20 июн 2013
    Сообщения:
    30
    Симпатии:
    3
    Нужно при переходе в каталог по первой категории например слева выводились только подкатегории этой категории, как это сделать? вот пример наглядный самой задачи)
    [​IMG]
     
  2. Reqman

    Reqman

    Регистрация:
    25 фев 2013
    Сообщения:
    213
    Симпатии:
    62
    А по умолчанию разве не так, как у вас на скрине?
     
  3. Елена8

    Елена8

    Регистрация:
    20 июн 2013
    Сообщения:
    30
    Симпатии:
    3
    Reqman, суть в том что бы слева были только подкатегории активной категории и больше ни чего, именно слева)
     
  4. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    740
    Симпатии:
    266
    Вариант №1 - присвоить не нужным ссылкам свойство дисплей: нон. как в моем примере, это макет модуля (каталог/вайв/тем/ваша тема/темплейт/модули/категории)
    Код:
    <div class="box">
      <div class="box-content box-category">
        <h3 class="heading-title"><span><?php echo $heading_title; ?></span></h3>
        <ul>
          <?php foreach ($categories as $category) { ?>
          <li>
            <?php if ($category['category_id'] == $category_id) { ?>
            <a style="display: none;" href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
            <?php } else { ?>
            <a style="display: none;" href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
            <?php } ?>
            <?php if ($category['children']) { ?>
            <ul>
              <?php foreach ($category['children'] as $child) { ?>
              <li>
                <?php if ($child['category_id'] == $child_id) { ?>
                <a href="<?php echo $child['href']; ?>" class="active"> - <?php echo $child['name']; ?></a>
                <?php } else { ?>
                <a href="<?php echo $child['href']; ?>"> - <?php echo $child['name']; ?></a>
                <?php } ?>
              </li>
              <?php } ?>
            </ul>
            <?php } ?>
          </li>
          <?php } ?>
        </ul>
      </div>
    </div>
    
    Можно вообще удалить ненужные ссылки, но так как контроллер от этого не перестанет считать категории и производительность не вырастет, покатит и простое скрытие.
    P.S. У этого способа есть недочет, он будет выводить модуль в т.ч. в категориях не имеющих дочек в виде пустого заголовка, надо добавлять проверку на наличие дочерних категорий, и только потом выводить модуль, выходит.
     
    Последнее редактирование: 5 янв 2014
    Елена8 нравится это.
  5. Елена8

    Елена8

    Регистрация:
    20 июн 2013
    Сообщения:
    30
    Симпатии:
    3
    cereberlum, ага помогает, только модуль не совсем стандартный) верней видимо не подходящий нужно что бы при переходе во вторую открывалась третья тогда, и так же убрать просто ссылки) Нашла такой модуль с третьим уровнем, спасибо огромное)
     
  6. Елена8

    Елена8

    Регистрация:
    20 июн 2013
    Сообщения:
    30
    Симпатии:
    3
    cereberlum, да со двойной вложенностью категорий это подошло)) а что если их три?

    где-то в этой части

    PHP:
    <?php foreach ($category['children'] as $child) { ?>
              <li>
                <?php if ($child['category_id'] == $child_id) { ?>
                <a href="<?php echo $child['href']; ?>" class="active"> - <?php echo $child['name']; ?></a>
                <?php } else { ?>
                <a href="<?php echo $child['href']; ?>"> - <?php echo $child['name']; ?></a>
                <?php ?>
    как я понимаю нужно использовать else a display:none;

    как с первой, но не соображу как)
     
    Последнее редактирование: 9 янв 2014
  7. Ping

    Ping PingWin always win Команда форума

    Регистрация:
    29 окт 2012
    Сообщения:
    443
    Симпатии:
    301
    Решение нашлось ? Нужно на сайте сделать схожее + вложенность.