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

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


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).")");
	}

 

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

  В 16.01.2020 в 09:09, spectre сказав:

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

Expand  

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

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


  В 16.01.2020 в 09:12, nickizdp сказав:

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

Expand  

см выше

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

  В 16.01.2020 в 09:09, 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).")");
	}

 

Expand  

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

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


  В 16.01.2020 в 09:20, nickizdp сказав:

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

Expand  

 

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

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

  В 16.01.2020 в 09:24, spectre сказав:

 

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

Expand  

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

Змінено користувачем nickizdp
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

Important Information

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