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

Как вывести название категории на странице поиска


Recommended Posts

Всем доброго времени суток!

Подскажите плз., каким образом можно вывести название категории, в которой находится товар, и количество результатов на странице поиска?

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


Всем доброго времени суток!

Подскажите плз., каким образом можно вывести название категории, в которой находится товар, и количество результатов на странице поиска?

 

Получить категории товара имея его ID можно функцией:

public function getProductCategories($product_id) {
	$product_category_data = array();
	
	$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "'");
	
	foreach ($query->rows as $result) {
		$product_category_data[] = $result['category_id'];
	}
	return $product_category_data;
}

Получить кол-во найденных товаров можно добавив в файл "catalog/controller/product/search.php" код:

$this->data['cout_of_results'] = count($results);

Добавлять его нужно после:

$results = $this->model_catalog_product->getProducts($data);
Надіслати
Поділитися на інших сайтах

halfhope, спасибо!

с количеством получилось, а вот с названием категорий что-то не оченть понял

 

 

Постараюсь объяснить. Открываете файл "catalog/model/catalog/product.php" добавляете туда эту функцию, она вернет массив категорий, в котором содержится товар с ID, который вы указали. Потом её можно будет вызвать в любом контроллере вот так:

#подгружаем модель с нужной функцией, если не загружена
$this->load->model('catalog/product');
#Вызываем добавленную нами функцию из модели 
$product_categories = $this->model_catalog_product->getProductCategories($product_id);

Она вернет нам массив категорий, в которых содержится товар. Допустим, товар содержится в одной категории, то она вернет нам:

$product_categories = array(
  0 => 21
);

Т.е. $product_categories[0] = 21. 21 это ID категории, в которой содержится товар. Теперь мы можем получить данные о категории таким же образом:

#Подгружаем модель
$this->load->model('catalog/category');
#Получаем данные о категории товара
$category_info = $this->model_catalog_category->getCategory($product_categories[0]);

Теперь в переменной $category_info содержатся данные о категории, которые мы можем использовать. Вам будет нужен только $category_info['name'], в нем содержится название категории. 

  • +1 2
Надіслати
Поділитися на інших сайтах

halfhope, огромное спасибо за понятное и подробное описание!

Думаю, теперь все получится внедрить :)

 

 

Насчет кол-ва товаров. Неправильно Вам указал. Вот так правильно:

$count_data = $data;
$count_data['limit'] = 0;
$this->data['cout_of_results'] = $this->model_catalog_product->getTotalProducts($count_data);

В том же месте.

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

  • 3 months later...

 

Получить категории товара имея его ID можно функцией:

public function getProductCategories($product_id) {
	$product_category_data = array();
	
	$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "'");
	
	foreach ($query->rows as $result) {
		$product_category_data[] = $result['category_id'];
	}
	return $product_category_data;
}

Получить кол-во найденных товаров можно добавив в файл "catalog/controller/product/search.php" код:

$this->data['cout_of_results'] = count($results);

Добавлять его нужно после:

$results = $this->model_catalog_product->getProducts($data);

 

 

 

 

Прописал в catalog/model/catalog/product.php примерно в 875 строке

public function getProductCategories($product_id) {
    $product_category_data = array();
    
    $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "'");
    
    foreach ($query->rows as $result) {
        $product_category_data[] = $result['category_id'];
    }
    return $product_category_data;
}

Подскажите, пожалуйста, что делать дальше? Как теперь вывести на странице категории у каждого товара его категорию?

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


  • 3 years later...

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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

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