*

stol

  • *
  • 28

Категория с количеством товаров "0"

Подскажите как скрыть категории где количество товаров(0)

Получилось так, товары есть но выключены в результате в категории отображается количество "0"

Удалите категории просто.

*

stol

  • *
  • 28

Удалите категории просто.

Товары могут появиться, сейчас их нет в наличии, каждый раз удалять - создавать категории не лучший вариант.
К тому же категорий достаточно много.
Надо просто "скрыть" категории с count 0

Просто так я не видел чтобы можно было деактивировать категории...

*

stol

  • *
  • 28

Не знаете в каком файле происходит формирование списка категорий или отображение?

*

stol

  • *
  • 28

Подскажите где все таки формируется список категорий? Или отображается в шаблоне. Где хотя бы рыть?
Недавно разбираюсь с oscommerce пока не разобрался в структуре...

Ищите в папке Templates вывод на экран. А если сам код менять то он в папке Includes и т.д.

*

stol

  • *
  • 28

Вот такое решение:

файл /includes/classes/category_tree.php

находим:
protected function _buildBranch($parent_id, $level = 0) {

после:
foreach ( $this->_data[$parent_id] as $category_id => $category ) {

добавляем:

      //проверка категории с к-вом товаров 0
      if($category['count']>0){

находим:

            } else {
              $result .= $this->_buildBranch($category_id, $level+1);
            }
          }

после добавляем:

} //окончание проверки нулевой категории


сохраняем, заливаем на сервер.



Похоже что они заложили в код проверку категорий с к-вом товаров 0 , но у меня все равно такие категории отображаются.

Если кто обнаружит другое решение напишите.

*

stol

  • *
  • 28

для того чтоб не отображались категории с 0 товаров на странице в центре надо сделать следущее:



/templates/шаблон/content/index/category_listing.php
находим:

    while ($Qcategories->next()) {
      $rows++;
ниже добавляем:
if($osC_CategoryTree->getNumberOfProducts($Qcategories->valueInt('categories_id'))>0){

находим:
        echo '  <tr>' . "\n";
      }
после добавляем:
      }