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

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


Recommended Posts

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

Версия 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
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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