Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

[Поддержка] Список производителей


ikarus
 Поделиться

Рекомендованные сообщения

Список производителей


Список производителей


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

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

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

Для ocStore 1.5.3.1, на прочих не проверял

ДЕМО

p.s. В титле производителя выводится seo_title он же "HTML-тег Title", если выводить не надо, то в /template/module/brands.tpl заменить вот это:

<a class="active" href="<?php echo $brand['href']; ?>" title="<?php echo $brand['seo_title']; ?>"><?php echo $brand['name']; ?></a>

на это:

<a class="active" href="<?php echo $brand['href']; ?>" title="<?php echo $brand['name']; ?>"><?php echo $brand['name']; ?></a>

или на что хотите :)


 

  • +1 2
Ссылка на комментарий
Поделиться на других сайтах

Незнаю как у Вас, у меня почему-то косяки обнаруживаются. Например при включении данного модуля на страницах производителей, title производителя заменяется на слово Производители

Ссылка на комментарий
Поделиться на других сайтах


Делалось под версию 1.5.3.1

 

уточните в описании движок - Opencart, ocStore, другое

Ссылка на комментарий
Поделиться на других сайтах

Незнаю как у Вас, у меня почему-то косяки обнаруживаются. Например при включении данного модуля на страницах производителей, title производителя заменяется на слово Производители

версия движка?

Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...

Полезная фишка, плюсанул. Только вот вопрос, как убрать отображение непосредственно в "product/manufacturer" ? Там списку явно не место, особенно если отображать в колонках (например, при расположении снизу, список не бросается в глаза при поиске по алфавитному указателю, но тогда теряется при отображении на странице выбранного производителя; т.о., место ему только в боковых колонках)

Ссылка на комментарий
Поделиться на других сайтах


Полезная фишка, плюсанул. Только вот вопрос, как убрать отображение непосредственно в "product/manufacturer" ? Там списку явно не место, особенно если отображать в колонках (например, при расположении снизу, список не бросается в глаза при поиске по алфавитному указателю, но тогда теряется при отображении на странице выбранного производителя; т.о., место ему только в боковых колонках)

 

если имеешь ввиду чтобы модуль было видно внутри производителей и не видно на странице списка производителей, то можно создать отдельную схему с путем product/manufacturer/product и разместить модуль только в ней.

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...

Спасибо за хороши модуль! Подскажите, как можно вывести списком вместо столбика? 

 

т.е. горизонтальным списком? li { display:inline;}

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Вообще как наверное многие заметили модуль нафиг не нужен на странице списка производителей, а полезен будет только на странице производителя, но проблема состоит в том что у страницы списка производителей и страницы производителя одна и та же общая схема (product/manufacturer), которая (до версии oc 1.5.5) перекрывает уточненную схему страницы производителя (product/manufacturer/product).

 

Короче если нужно показать модуль только на странице производителя делаем следующее:

1. Делаем новую схему(макет), называем как хотим, путь такой: product/manufacturer/product (с версии 1.5.4 product/manufacturer/info)

2. В файле catalog/model/design/layout.php:

строку

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "layout_route WHERE '" . $this->db->escape($route) . "' LIKE CONCAT(route, '%') AND store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY route ASC LIMIT 1");

заменить на

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "layout_route WHERE '" . $this->db->escape($route) . "' LIKE CONCAT(route, '%') AND store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY route DESC LIMIT 1");

 

Ну и разместить модуль только в новой схеме.

Ссылка на комментарий
Поделиться на других сайтах

Подскажите, а где вставлять li { display:inline;} ?

спасибо

 

catalog/view/theme/modernlight/template/module/brands.tpl:

<li>
заменить на 
<li style="display:inline;">
Ссылка на комментарий
Поделиться на других сайтах

  • 5 недель спустя...

Если у кого-то на новой версии 1,5,5,1,1 будут проблемы при нажатии на бренд - 

Запрашиваемая страница не найдена!

Идете сюда: \catalog\controller\module\brands.php
и меняете

'href' => $this->url->link('product/manufacturer/product','manufacturer_id=' . $result['manufacturer_id']),

на 

'href' => $this->url->link('product/manufacturer/info','manufacturer_id=' . $result['manufacturer_id']),
Ссылка на комментарий
Поделиться на других сайтах


 

Если у кого-то на новой версии 1,5,5,1,1 будут проблемы при нажатии на бренд - 

Запрашиваемая страница не найдена!

Идете сюда: \catalog\controller\module\brands.php

и меняете



'href' => $this->url->link('product/manufacturer/product','manufacturer_id=' . $result['manufacturer_id']),

на 



'href' => $this->url->link('product/manufacturer/info','manufacturer_id=' . $result['manufacturer_id']),

 

А у кого OC Store и вообще не 1.5.5? 

 

Например у меня, отсутствует данный файл — «brand.php». Зато вхождение «$result['manufacturer_id']» два раза обнаружилось в «manufacturer.php» (catalog/controller/product/manufacturer.php). Причём, одно из них полностью соответствует рекомендованному вами исправлению*.

 

Но проблема остаётся.

 

--

* за исключением запятой в конце строки, но строка там последняя, перед «);»:

				$this->data['products'][] = array(
					'product_id'  => $result['product_id'],
					'thumb'       => $image,
					'name'        => $result['name'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
					'price'       => $price,
					'special'     => $special,
					'tax'         => $tax,
					'rating'      => $result['rating'],
					'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
					'href'        => $this->url->link('product/product', $url . '&manufacturer_id=' . $result['manufacturer_id'] . '&product_id=' . $result['product_id'])
				);
			}
Ссылка на комментарий
Поделиться на других сайтах


Починилось благодаря рекомендации товарища afwollis:

 

Поиском по файлам, заменить все вхождения «product/manufacturer/product» на «product/manufacturer/info».

 

У меня данное вхождение обнаружилось только в /catalog/controller/common/seo_pro.php, было исправлено и всё заработало.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


Появилась новая херь.. При нажатии на роизводителя - Parse error: syntax error, unexpected T_DOUBLE_ARROW in /vqmod/vqcache/vq2-catalog_controller_product_manufacturer.php on line 356

            if ($this->config->get('config_date_added_desc_man')) {
            $this->data['sorts'][] = array(
    			'text'  => $this->config->get('config_date_added_desc_text_man'),
				'value' => 'p.date_added-DESC',
				'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.date_added&order=DESC' . $url)
			);

				'value' => 'p.model-DESC',
				'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.model&order=DESC' . $url)
			);
	
			$url = '';
					
			if (isset($this->request->get['sort'])) {
				$url .= '&sort=' . $this->request->get['sort'];
			}	

выделенная 356 строка, я уже голову сломал в скриптах, не могу найти в чем дело. Если вытираю в КЕШЕ строку

		'value' => 'p.model-DESC',
				'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.model&order=DESC' . $url)
			);

всё -  песня, производитель выводится. НО! я не могу это оставить, оно не дает мне уснуть..

где собака зарыта??

 

Ссылка на комментарий
Поделиться на других сайтах


Появилась новая херь.. При нажатии на роизводителя - Parse error: syntax error, unexpected T_DOUBLE_ARROW in /vqmod/vqcache/vq2-catalog_controller_product_manufacturer.php on line 356

            if ($this->config->get('config_date_added_desc_man')) {
            $this->data['sorts'][] = array(
    			'text'  => $this->config->get('config_date_added_desc_text_man'),
				'value' => 'p.date_added-DESC',
				'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.date_added&order=DESC' . $url)
			);

				'value' => 'p.model-DESC',
				'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.model&order=DESC' . $url)
			);
	
			$url = '';
					
			if (isset($this->request->get['sort'])) {
				$url .= '&sort=' . $this->request->get['sort'];
			}	

выделенная 356 строка, я уже голову сломал в скриптах, не могу найти в чем дело. Если вытираю в КЕШЕ строку

		'value' => 'p.model-DESC',
				'href'  => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . '&sort=p.model&order=DESC' . $url)
			);

всё -  песня, производитель выводится. НО! я не могу это оставить, оно не дает мне уснуть..

где собака зарыта??

 

 

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

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
  • 1 месяц спустя...

Данный модуль работает прекрасно и на версии OcStore 1.5.5.1.1 , если в файле \catalog\controller\module\brands.php поменять в строке 16

product/manufacturer/product 
на 
product/manufacturer/info

 

Спасибо большое за модуль, все работает.

Ссылка на комментарий
Поделиться на других сайтах


  • 3 месяца спустя...

ikarus, Спасибо за модуль! Пригодится.

Правда чтобы модуль выглядел так же как блок категорий пришлось в файле /template/module/brands.tpl добавить класс тегу в строке 6:

<ul class="box-category">.

Как я понимаю, теперь DIV в строке 4 оказался не нужным, можно удалить его и закрывающий тег в строке 17.

 

Keyser, спасибо за совет! После такой правки и на OcStore 1.5.5.1.2 работает.
 

PS: почему-то не получается наставить звёздочек на странице закачки: https://opencartforum.com/files/file/1165-список-производителей/

Ссылка на комментарий
Поделиться на других сайтах


  • 1 год спустя...

Что подправить, что бы в макетах можно было выбирать плагин? Остальные конфликты исправил для версии Open Cart 2.0.1.1

Плагин установил, включил, настроил, перехожу в макеты и не видно его..

Ссылка на комментарий
Поделиться на других сайтах


  • 2 недели спустя...
  • 2 месяца спустя...

Ребята, верстка поплыла, когда перехожу к производителю любому. 

Подскажите пожалуйста какой он шаблон использует для вывода Товаров данного производителя?

чтобы я покопался и выровнял всё.

Спасибо заранее.

Модуль чудесный, решил все вопрос. Есть правда один еще вопрос. 

У меня много производителей, я хочу из спрятать, если их больше 10 к примеру. Чтобы последний пункт был Все производители и при нажатии, если человеку будет нужно, они выезжали дальше.

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.