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

Вопрос про вывод производителей в категориях


Recommended Posts

Доброе времени суток, есть вот такой модификатор, который выводит производителей в категории, все работает но не могу понять как вывести описание производителя. 

Думаю нужно будет подключить таблицу manufacturer_description 

 

	<file path="catalog/model/catalog/manufacturer.php">
		<operation error="skip">
			<search><![CDATA[public function getManufacturers($data = array()) {]]></search>
			<add position="before"><![CDATA[
public function getBrandsByCategoryId($category_id) {
    $query = $this->db->query("
		SELECT
			m.* 
		FROM
			" . DB_PREFIX . "product p 
		RIGHT JOIN " . DB_PREFIX . "product_to_category p2c ON 
			p.product_id = p2c.product_id 
		LEFT JOIN " . DB_PREFIX . "manufacturer m ON
			p.manufacturer_id = m.manufacturer_id
		WHERE 
			p2c.category_id = " . (int)$category_id . " AND 
			m.manufacturer_id IS NOT NULL
		GROUP BY m.manufacturer_id
    ");
    return $query->rows;
}   	
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/product/category.php">
		<operation error="skip">
			<search><![CDATA[$category_info = $this->model_catalog_category->getCategory($category_id);]]></search>
			<add position="before"><![CDATA[
$this->load->model('catalog/manufacturer');
$brands = $this->model_catalog_manufacturer->getBrandsByCategoryId($category_id);
$data['brands'] = array();
foreach ($brands as $brand) {
	$image = $brand['image'];
	$data['brands'][] = array(
		'name'			=> $brand['name'],
		'image'			=> $this->model_tool_image->resize($brand['image'], 180, 54),
		'href_brand'	=> $this->url->link('product/manufacturer/info',  'manufacturer_id=' . $brand['manufacturer_id'] . $url)
	);
}
			]]></add>
		</operation>
	</file>

 

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


1 час назад, alexb сказал:

Доброе времени суток, есть вот такой модификатор, который выводит производителей в категории, все работает но не могу понять как вывести описание производителя. 

Думаю нужно будет подключить таблицу manufacturer_description 

 

 

	<file path="catalog/model/catalog/manufacturer.php">
		<operation error="skip">
			<search><![CDATA[public function getManufacturers($data = array()) {]]></search>
			<add position="before"><![CDATA[
public function getBrandsByCategoryId($category_id) {
    $query = $this->db->query("
		SELECT
			m.*, md.description 
		FROM
			" . DB_PREFIX . "product p 
		RIGHT JOIN " . DB_PREFIX . "product_to_category p2c ON 
			p.product_id = p2c.product_id 
		LEFT JOIN " . DB_PREFIX . "manufacturer m ON
			p.manufacturer_id = m.manufacturer_id
		LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON 
			(m.manufacturer_id = md.manufacturer_id AND md.language_id = '" . (int)$this->config->get('config_language_id') . "')
		WHERE 
			p2c.category_id = " . (int)$category_id . " AND 
			m.manufacturer_id IS NOT NULL
		GROUP BY m.manufacturer_id
    ");
    return $query->rows;
}   	
			]]></add>
		</operation>
	</file>
	
	<file path="catalog/controller/product/category.php">
		<operation error="skip">
			<search><![CDATA[$category_info = $this->model_catalog_category->getCategory($category_id);]]></search>
			<add position="before"><![CDATA[
$this->load->model('catalog/manufacturer');
$brands = $this->model_catalog_manufacturer->getBrandsByCategoryId($category_id);
$data['brands'] = array();
foreach ($brands as $brand) {
	$image = $brand['image'];
	$data['brands'][] = array(
		'name'			=> $brand['name'],
		'description'	=> $brand['description'],
		'image'			=> $this->model_tool_image->resize($brand['image'], 180, 54),
		'href_brand'	=> $this->url->link('product/manufacturer/info',  'manufacturer_id=' . $brand['manufacturer_id'] . $url)
	);
}
			]]></add>
		</operation>
	</file>

попробуйте так, не проверял

ну и во вьюхе вывести description

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

Как-то так:

SELECT
    m.*, md.description AS description
FROM
    " . DB_PREFIX . "product p
RIGHT JOIN " . DB_PREFIX . "product_to_category p2c ON
    p.product_id = p2c.product_id
LEFT JOIN " . DB_PREFIX . "manufacturer m ON
    p.manufacturer_id = m.manufacturer_id
LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON
    (m.manufacturer_id = md.manufacturer_id)
WHERE
    p2c.category_id = " . (int)$category_id . " AND 
    m.manufacturer_id IS NOT NULL AND 
    md.language_id = '" . (int)$this->config->get('config_language_id') . "'
GROUP BY
    m.manufacturer_id

и в $brand['description'] будет ваше описание бренда на выбранном языке

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

все работает, оба способа ))

При чем description выводится а вот поле которое я создал, и которое в той же таблице нет, пишет Undefined index:name1, хотя все по аналогии и поля похожи и таблица таже manufacturer_description

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


разобрался что нужно изменить m.*, md.description AS description

а как добавить еще значение?

 

 

m.*, md.description AS description,
m.*, md.description1 AS description1

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


1 минуту назад, alexb сказал:

разобрался что нужно изменить m.*, md.description AS description

а как добавить еще значение?

 

 

m.*, md.description AS description,
m.*, md.description1 AS description1

 

SELECT
			m.*, md.description, md.name1 

 

и по-хорошему description прогнать через декодирование тегов.

'description'	=> html_entity_decode($brand['description'], ENT_QUOTES, 'UTF-8');

 

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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