Jump to content
Sign in to follow this  
vyn

Как отключить пустые категории?

Recommended Posts

Как автоматичсеки отключить показ пустых категорий, в которых нет товаров?

Бывает до 100 пустых категорий висит.

Какое условие нужно прописать в коде?

Share this post


Link to post
Share on other sites

я бы добавил подзапрос для проверки в таблице привязки к товарам в виде 

LEFT JOIN " . DB_PREFIX . "product_to_category p2c 

в public function getCategories

Share this post


Link to post
Share on other sites

Или в product/category.php

foreach ($results as $result) {
$data = array(
'filter_category_id'  => $result['category_id'],
'filter_sub_category' => true
);

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

// добавить if $product_total > 0 {
$this->data['categories'][] = array(
'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
'thumb' => $this->model_tool_image->resize(($result['image']=='' ? 'no_image.jpg' : $result['image']), $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'))
);
// добавить }
}
 
Пустые категории не будут добавляться в массив.
  • +1 1

Share this post


Link to post
Share on other sites

Как автоматичсеки отключить показ пустых категорий, в которых нет товаров?

что значит "отключить"? где?

Бывает до 100 пустых категорий висит.

где они "висят"?

Share this post


Link to post
Share on other sites

 

Или в product/category.php

foreach ($results as $result) {
$data = array(
'filter_category_id'  => $result['category_id'],
'filter_sub_category' => true
);

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

// добавить if $product_total > 0 {
$this->data['categories'][] = array(
'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
'thumb' => $this->model_tool_image->resize(($result['image']=='' ? 'no_image.jpg' : $result['image']), $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'))
);
// добавить }
}
 
Пустые категории не будут добавляться в массив.

 

Не помогло

 

было так у меня -

foreach ($results as $result) {

                $data = array(

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

                    'filter_sub_category' => true,

                'coolfilter'         => $coolfilter

                );

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

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

                    'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),

                    'count' => $product_total,

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

                );

            }

 

 

добавил в нужном месте код. и категории не открываются

Share this post


Link to post
Share on other sites

что значит "отключить"? где?

где они "висят"?

эти категории висят после того как с помощью кода скрыты товары с количеством 0шт.(чтобы глаза не мозолили)   но они не выключены(товары) просто скрыты.

товаров много. в ручную не реально отключать. Товары загружаются с 1с

Share this post


Link to post
Share on other sites

Не помогло

 

было так у меня -

foreach ($results as $result) {

                $data = array(

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

                    'filter_sub_category' => true,

                'coolfilter'         => $coolfilter

                );

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

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

                    'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),

                    'count' => $product_total,

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

                );

            }

 

 

добавил в нужном месте код. и категории не открываются

Покажите кусок с исправлениями

Неужто критично отсутствие круглых скобок в 

// добавить if $product_total > 0 {

? Тогда так:

// добавить if ($product_total > 0) {
Edited by igon

Share this post


Link to post
Share on other sites

 

Покажите кусок с исправлениями

Неужто критично отсутствие круглых скобок в 

// добавить if $product_total > 0 {

? Тогда так:

// добавить if ($product_total > 0) {

теперь так -

 

foreach ($results as $result) {

                $data = array(

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

                    'filter_sub_category' => true,

            'coolfilter'         => $coolfilter

                );

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

if ($product_total > 0){

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

                    'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),

                    'count' => $product_total,

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

                );

}

    }

 

вроде пока изменений нет. пустые висят категории. кеш чистил

Share this post


Link to post
Share on other sites

product/category.php - это не единственное место, где формируется массив категорий

 

Есть еще module/category.php.

 

Но там всё чуть посложнее. Пока не готов дать готовое решение. Но принцип решения - тот же.

 

И есть еще common/header.php

 

Вот (да,  только чуть посложнее):

 

В module/category.php нужно два условия на > 0:

if ($product_total > 0){

для подкатегорий 

 

и 

if ($total > 0){

для категории верхнего уровня.

 

 

В common/header.php одно условие 

if ($product_total > 0){

Share this post


Link to post
Share on other sites

я отключил товары с нулевым остатком в админке.

а категории пустые всеравно остались.

Share this post


Link to post
Share on other sites

эти категории висят после того как с помощью кода скрыты товары с количеством 0шт.(чтобы глаза не мозолили)   но они не выключены(товары) просто скрыты.

товаров много. в ручную не реально отключать. Товары загружаются с 1с

агов, на том берегу!

что значит "отключить"?

где?

в меню в шапке? в модуле категорий? по product/category&category_id=X не показывать, если нет товаров?

...но они не выключены(товары) просто скрыты...

а смысл вообще какой?

только забот себе добавили в виде "пустых категорий".

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.