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

Вывод категории товара под фото на странице категорий


kpaqpa

Recommended Posts

Приветствую! Хочется в категориях возле фото вывести категорию с ссылкой, может кто подскажет в какую сторону копать... версия opencart 2.0

 

Единственное что сделал так это вывод категории, и то это просто с хлебных крошек берет, заходишь в родительскую категорию показывает ту категорию..

\catalog\controller\product\category.php:

$data['products'][] = array(
				'thumb_swap'  => $swapimage,
				'hit'         => $hit,					
				'viewed'      => $result['viewed'],
				'date_end'    => $date_end,
				'date_available' => $result['date_available'],
				'options'     => $options,
				'quantity' => $result['quantity'],
				'stock' => ($result['quantity']<=0) ? $result['stock_status'] : $this->language->get('text_instock'),
				'sale' => $result['price'] == 0 ? 100 : round((($result['price'] - $result['special'])/$result['price'])*100, 0),
					'product_id'  => $result['product_id'],
					'thumb'       => $image,
					'name'        => $result['name'],
					'catname'    => $category_info['name'], //Ну понимаю что это не правильно...
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
					'tax'         => $tax,
					'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
					'rating'      => $result['rating'],
					'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
				);

ну и вывел в категориях \template\product\category.tpl

<?php echo $product['catname']; ?>

 

Категория к товарам проставлена только одна, максимальный уровень вложения 3й (1==>2==>3)

Screenshot_2.png

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


в идеале - написать функцию в модель товара catalog/model/catalog/product.php

что-то типа

public function getMainCategory($product_id) {
		$query = $this->db->query("SELECT ptc.category_id as category_id, cd.name as category_name FROM " . DB_PREFIX . "product_to_category ptc LEFT JOIN " . DB_PREFIX . "category_description cd ON (ptc.category_id = cd.category_id) WHERE ptc.product_id = '" . (int)$product_id . "' AND ptc.main_category=1");

		if ($query->num_rows) {
			$category = array(
			'category_name'=>$query->row['category_name'],
			'category_id'=>$query->row['category_id'],
			);
			return $category;
		}else{
			return false;
		}
	}

потом перед вашим

$data['products'][] = array(

добавить что-то вроде 

$main_category = $this->model_catalog_product->getMainCategory($result['product_id']);

Теперь у вас имеются

$main_category['category_id']  // id главной категории товара. можно использовать для генерации ссылки на неё
$main_category['category_name']  // название главной категории товара

//прежде чем их использовать не забывайте проверять 

if($main_category){
//значит главная категория товару задана и инфа о категории имеется
//дальше код для её обработки
}

 

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

  • 1 year later...

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

Успешно сделала вывод названия категории. Теперь застряла с другим вопросом, как в код ниже добавить еще возможность самой ссылки на эту категорию, что то мои знания закончились, помогите плиз....

Как было сделано вывод названия категории:

1.Файл модели продукта:

Перед:

public function getProductSpecials($data = array()) {

Вставила:

// Вывод главной категории старт
	public function getMainCategory($product_id) {
          $query = $this->db->query("SELECT ptc.category_id as category_id, cd.name as category_name FROM " . DB_PREFIX . "product_to_category ptc LEFT JOIN " . DB_PREFIX . "category_description cd ON (ptc.category_id = cd.category_id) WHERE ptc.product_id = '" . (int)$product_id . "' AND ptc.main_category=1");
		       		if ($query->num_rows) {
			$category_v_cartochke = array(
                'category_name'          => $query->row['category_name'],
				'category_id'           => $query->row['category_id']
			);
			return $query->row['category_name'];
		} else {
			return false;
		}
		  }	
// Вывод главной категории стоп

2. Файл контролера:

после:

$this->data['points'] = $product_info['points'];

добавила:

			// Вывод главной категории старт
			$this->data['category_v_cartochke'] = $this->model_catalog_product->getMainCategory($this->request->get['product_id']);
			// Вывод главной категории стоп	

.3 Ну и в сам шаблон вывела:

<p><?php echo $category_v_cartochke; ?></p>	

Название отображается текстом, работает отлично а вот как теперь ссылку вывести дилема, буду премного благодарна за помощь.

Пока cделала ссылку по еврейски :) Но хотелось бы сделать ее правильно.

<?php
$real_url = $_SERVER['REQUEST_URI'];     //получаем адрес текущей страницы
$cut_url = rtrim( dirname( $real_url ), "/" )."/";  //отрезаем текущий товар и получаем адрес директории
?>
<a href="<?php echo $cut_url; ?>"><?php echo $category_v_cartochke; ?></a>

 

 

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


В 04.05.2018 в 20:43, natalia8978 сказал:

а вот как теперь ссылку вывести дилема

		$main_category = $this->model_catalog_product->getMainCategory($this->request->get['product_id']);
		$this->data['name_category'] = $main_category['category_name'];
		$this->data['href_category'] = $this->url->link('product/category', 'path=' . $main_category['category_id']);

 

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

В 06.05.2018 в 12:25, fanatic сказал:

		$main_category = $this->model_catalog_product->getMainCategory($this->request->get['product_id']);
		$this->data['name_category'] = $main_category['category_name'];
		$this->data['href_category'] = $this->url->link('product/category', 'path=' . $main_category['category_id']);

 

К сожалению целый день крутила ваш код, но так и ни чего не получилось, толи что то не туда вставляю, толи что то с кодом не то.... :)

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


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

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

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

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

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

Вхід

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

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

Important Information

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