Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вывод списка подкатегорий


Recommended Posts

Необходимо вывести список подкатегорий родительской категории.

Структура такая:

Пицца

-Мясные

-С грибами

-С курицей

-Сладкие

и т.д., не глубже второго уровня.

Надо сделать так, чтобы при выводе подкатегории отображался весь список подкатегорий этого уровня.

Например, заходим в сладкие пиццы, а список всё равно полный - мясные, с грибами и т.д.

Помогите, пожалуйста.

Надіслати
Поділитися на інших сайтах


Там речь идёт о css-решении для меню.

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

Вот заходим мы в категорию "Пицца", видим список подкатегорий в области content (не в меню):

Вегетарианские (4)

Закрытые (1)

Мясные (9)

Остренькие (1)

С ананасами (5)

Очень надо сделать так, чтобы, зайдя в подкатегорию "Вегетарианские" (например), был виден весь этот список.

То есть контроллер как-то там выясняет родительскую категорию и выводит только все дочерние подкатегории. А надо вывести всех "братьев" текущей подкатегории.

Надіслати
Поділитися на інших сайтах


  • 3 months later...
  • 10 months later...

Помог решить этот вопрос владелец сайта finesites.ru, его ник на форуме kur1977. За что ему большое спасибо!

catalog/controller/product/category.php примерно на 149 строке перед $this->data['products'] = array(); добавляем:

$this->data['subcategories'] = array();

if($category_info['parent_id']!=0){ ////// выводим список только для ПОДкатегорий

$results = $this->model_catalog_category->getCategories($category_info['parent_id']);

foreach ($results as $result) {

if($result['category_id']==$category_id)continue; /// Текущую категорию в списке выводить не нужно.

$data = array(

'filter_category_id' => $result['category_id'],

'filter_sub_category' => true

);

$product_total = $this->model_catalog_product->getTotalProducts($data);

$this->data['subcategories'][] = array(

'name' => $result['name'] . ' (' . $product_total . ')',

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)

);

}

}

в файле catalog/view/theme/твоятема/template/product/category.tpl примерно на 42 строке перед <?php if ($products) { ?> выводим эту переменную:

<?php if ($subcategories) { ?>

<h2><?php echo $text_refine; ?></h2>

<div class="category-list">

<?php if (count($subcategories) <= 5) { ?>

<ul>

<?php foreach ($subcategories as $category) { ?>

<li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>

<?php } ?>

</ul>

<?php } else { ?>

<?php for ($i = 0; $i < count($subcategories); ) { ?>

<ul>

<?php $j = $i + ceil(count($subcategories) / 4); ?>

<?php for (; $i < $j; $i++) { ?>

<?php if (isset($subcategories[$i])) { ?>

<li><a href="<?php echo $subcategories[$i]['href']; ?>"><?php echo $subcategories[$i]['name']; ?></a></li>

<?php } ?>

<?php } ?>

</ul>

<?php } ?>

<?php } ?>

</div>

<?php } ?>

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
  • 1 year later...
  • 1 year later...

Помог решить этот вопрос владелец сайта finesites.ru, его ник на форуме kur1977. За что ему большое спасибо!

catalog/controller/product/category.php примерно на 149 строке перед $this->data['products'] = array(); добавляем:

$this->data['subcategories'] = array();

if($category_info['parent_id']!=0){ ////// выводим список только для ПОДкатегорий

$results = $this->model_catalog_category->getCategories($category_info['parent_id']);

foreach ($results as $result) {

if($result['category_id']==$category_id)continue; /// Текущую категорию в списке выводить не нужно.

$data = array(

'filter_category_id' => $result['category_id'],

'filter_sub_category' => true

);

$product_total = $this->model_catalog_product->getTotalProducts($data);

$this->data['subcategories'][] = array(

'name' => $result['name'] . ' (' . $product_total . ')',

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)

);

}

}

в файле catalog/view/theme/твоятема/template/product/category.tpl примерно на 42 строке перед <?php if ($products) { ?> выводим эту переменную:

<?php if ($subcategories) { ?>

<h2><?php echo $text_refine; ?></h2>

<div class="category-list">

<?php if (count($subcategories) <= 5) { ?>

<ul>

<?php foreach ($subcategories as $category) { ?>

<li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>

<?php } ?>

</ul>

<?php } else { ?>

<?php for ($i = 0; $i < count($subcategories); ) { ?>

<ul>

<?php $j = $i + ceil(count($subcategories) / 4); ?>

<?php for (; $i < $j; $i++) { ?>

<?php if (isset($subcategories[$i])) { ?>

<li><a href="<?php echo $subcategories[$i]['href']; ?>"><?php echo $subcategories[$i]['name']; ?></a></li>

<?php } ?>

<?php } ?>

</ul>

<?php } ?>

<?php } ?>

</div>

<?php } ?>

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

post-693354-0-61040900-1425394727_thumb.png

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.