Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Как убрать путстые категории?


nickizdp
 Поделиться

Рекомендованные сообщения

Всех приветствую!

Версия Opencart: 3.1.0.1;

Шаблон: Journal 3;

Как можно убрать путстые категории (категории без товаров)? Пытаюсь написать свой код, добавил в файл catalog/controller/journal3/categories.php сдедующее:

$data = array(
				'filter_category_id'  => $category['category_id'],
				'filter_sub_category' => true	
			);		
			$product_total = $this->model_catalog_product->getTotalProducts($data);
			if($product_total>0){
				$categories[$result['category_id']] = array(
					'classes'     => array(
						'swiper-slide' => $this->settings['sectionsDisplay'] !== 'isotope' && $this->settings['carousel'],
						'isotope-item' => $this->settings['sectionsDisplay'] === 'isotope',
					),
					'category_id' => $result['category_id'],
					'thumb'       => $image,
					'thumb2x'     => $image2x,
					'name'        => $result['name'],
					'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->settings['descLimit']) . '..',
					'href'        => $this->url->link('product/category', 'path=' . $result['category_id']),
				);
			}

Не работает, может кто-то сталкивался с такой проблемой, подскажите пожалуйста.

Изменено пользователем nickizdp
Ссылка на комментарий
Поделиться на других сайтах


отключите их по кол-ву товаров 0

 

Например такой функцией

 

	public function disableEmptyCategories() {
		$query = $this->db->query("SELECT c.category_id, (SELECT COUNT(*) FROM " . DB_PREFIX . "product_to_category pc WHERE pc.category_id = c.category_id) as total FROM " . DB_PREFIX . "category c");
		
		$disable = array();
		
		foreach ($query->rows as $row) {
			if ($row['total'] == 0) $disable[] = $row['category_id'];
		}
		
		$this->db->query("UPDATE " . DB_PREFIX . "category SET status = 0 WHERE category_id IN (".implode(',', $disable).")");
		
		$this->db->query("UPDATE " . DB_PREFIX . "category SET status = 1 WHERE category_id NOT IN (".implode(',', $disable).")");
	}

 

Ссылка на комментарий
Поделиться на других сайтах

2 минуты назад, spectre сказал:

отключите их по кол-ву товаров 0

ну я это  и пытался сделать с помощью кода, не получилось, или вы имеете ввиду через админку как-то?

Ссылка на комментарий
Поделиться на других сайтах


6 минут назад, nickizdp сказал:

ну я это  и пытался сделать с помощью кода, не получилось, или вы имеете ввиду через админку как-то?

см выше

Ссылка на комментарий
Поделиться на других сайтах

10 минут назад, spectre сказал:

отключите их по кол-ву товаров 0

 

Например такой функцией

 


	public function disableEmptyCategories() {
		$query = $this->db->query("SELECT c.category_id, (SELECT COUNT(*) FROM " . DB_PREFIX . "product_to_category pc WHERE pc.category_id = c.category_id) as total FROM " . DB_PREFIX . "category c");
		
		$disable = array();
		
		foreach ($query->rows as $row) {
			if ($row['total'] == 0) $disable[] = $row['category_id'];
		}
		
		$this->db->query("UPDATE " . DB_PREFIX . "category SET status = 0 WHERE category_id IN (".implode(',', $disable).")");
		
		$this->db->query("UPDATE " . DB_PREFIX . "category SET status = 1 WHERE category_id NOT IN (".implode(',', $disable).")");
	}

 

А где эту функцию в Journal прописать?

Ссылка на комментарий
Поделиться на других сайтах


3 минуты назад, nickizdp сказал:

А где эту функцию в Journal прописать?

 

обратитесь к тому кто понимает как это сделать, можете кнопку наваять в категориях, можете по крону запускать

Ссылка на комментарий
Поделиться на других сайтах

15 минут назад, spectre сказал:

 

обратитесь к тому кто понимает как это сделать, можете кнопку наваять в категориях, можете по крону запускать

Просто на дефолтной теме ОС  я бы и сам сделал, но в Джорнал категории задаются как-то вручную, и даже если я поставлю статус категории 0, Джорнал её равно его будет выводить.

Изменено пользователем nickizdp
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.