Задать вопрос

Как вывести подкатегории у категории?

Всем привет.
Пытаюсь вывести с категории ее подкатегории, то есть саму категорию я выводить не хочу, а только подкатегории данной категории, допустим я знаю id 21108 категории, из которой хочу вывести ее подкатегории.

На данный момент что у меня вышло, я ловлю категорию по id которую вывожу, но мне ее выводить не надо, хочу из нее выводить подкатегории.
<?php foreach ($categories as $category) {
        if ($category['id'] == '21108') {
      ?>
        <li>
          <a href="<?php echo $category['alias'] ?>/" title="<?= $category['name'] ?>"><?= $category['name'] ?></a>
        </li>
      <?php
      }
      }
      ?>


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

public static function viewCatUnlimited($categories, $level = 0, $countLevel = null)
  {
    // через запятую 1,2 и так далее, указываем в каком уровне выводить стрелку.
    $array_parent = array(1);
    $array_parents = array(2, 3);
    // через запятую 1,2 и так далее, указываем где выводить всплывающие подменю.
    $array_container = array(1);

    //выводим в ul класс для 2 уровня
    $second_menu = array(2);
    //выводим в ul класс для 3,4 и так далее уровня
    $third_menu = array(3, 4, 5, 6, 7);

    //$array_haspopup = array(1);

    foreach ($categories as $category) {
      if ($category['show_cat'] == '1') {
        if (!isset($category['children'])) {
          $parentCat = ORM::factory('Category', $category['id']);
?>
          <li><a href="<?= self::getUrlParentAlias($category['id']) ?>" title=""><?= (in_array($level, $array_parent)) ? '<i class="' . $category['icon'] . '"></i>' : '' ?><?= $category['name'] ?></a></li>
        <?php
        } else {
        ?>

          <li>
            <?php
            if ($level != 0) {
              $parentCat = ORM::factory('Category', $category['parent_id']);
            ?>
              <a href="<?= self::getUrlParentAlias($category['id']) ?>" title=""><?= (in_array($level, $array_parent)) ? '<i class="' . $category['icon'] . '"></i>' : '' ?><?= $category['name'] ?>
                <?= (in_array($level, $array_parent)) ? '<i class="icon-smgmr"></i><i class="icon-smgmr1" onclick="MenuClick(this);return false;"></i>' : '' ?><?= (in_array($level, $array_parents)) ? '<i class="icon-smgmr2" onclick="MenuClick(this);return false;"></i>' : '' ?></a>
            <?php
            }
            ?>
            <?php
            $showChild = false;
            foreach ($category["children"] as $childfirst) {
              if ($childfirst['show_cat'] == '1') {
                $showChild = true;
              }
              break;
            }

            if ($showChild) {
              if ($countLevel !== null && $level >= $countLevel) {
              } else {

                if (in_array($level, $array_container)) {
            ?>
                  <div class="podm allpod" onmouseover="HoverElem(this);" onmouseout="StopHover(this);">
                  <?php
                }
                  ?>
                  <ul <?= (in_array($level, $array_parent)) ? 'class="podm1"' : '' ?> <?= (in_array($level, $second_menu)) ? 'class="second_menu"' : '' ?> <?= (in_array($level, $third_menu)) ? 'class="third_menu"' : '' ?>>
                    <?php
                    self::viewCatUnlimited($category["children"], $level + 1, $countLevel);
                    ?>
                  </ul>
                  <?php
                  if (in_array($level, $array_container)) {
                  ?>
                  </div>
              <?php
                  }
                }
              ?>
          </li>
<?php
            }
          }
        }
      }
    }
  • Вопрос задан
  • 227 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
ws17
@ws17 Автор вопроса
Так ну вроде чет удалось сделать самому, выводить, ошибки нет, хотя в php я ноль )

<?php
              foreach ($categories as $category) :
                if ($category['id'] == '21108') :
                  if (!isset($category['children'])) {
              ?>
                  <?
                  } 
                  ?>
                    <!--   вывод уровень 2 -->
                      <?php
                      foreach ($category["children"] as $childfirst) :
                        if ($childfirst['show_cat'] == '1') {
                          if (!isset($childfirst['children'])) {
                      ?>
                            <li><a href="/uborka-zdaniy/<?= $childfirst['alias'] ?>/" title="<?= $childfirst['name'] ?>"><?= $childfirst['name'] ?></a></li>
                            <?
                          }
                        }
                      endforeach;
                      ?>
              <?
                endif;
              endforeach;
              ?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект