Главная » Opencart » Выводим атрибуты товаров на странице категории Opencart

Выводим атрибуты товаров на странице категории Opencart

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

Итак, в сегодняшней статье мы поговорим о выводе атрибутов товаров непосредственно на странице категории Opencart. Обычно такой ход часто используется для вывода характеристик, например различной техники, или же параметров мебели и прочего. В общем, вещь нужная и весьма полезная, думаю 100% пригодиться вам при разработке.

Я, на данный момент, купил и пользуюсь модулем «Текстовый блок с атрибутами», стоит он всего 150р. Очень удобный и настраивается из админки. (Получилась минутка рекламы J).

Но давайте посмотрим как решить этот вопрос, не покупая модулей, а просто внеся несколько правок в файлы вашего сайта.

Приступим.

1.)  Для начала мы подправим файл контроллера. Для этого ищем файла, который находиться — catalog\controller\product\category.php. Открываем его и ищем строку.

'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',

После нее добавляем следующий код.

'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),

2.) Теперь организуем вывод самого блока с атрибутами в файле шаблона — catalog\view\theme\default\template\product\category.tpl. Учтите, что если вы используете не стандартный шаблон, то вам нужно вносить правки в папке именно вашего шаблона.

Ищем div с классом description

<div class="description"><?php echo $product['description']; ?></div>

и  либо убираем вывод описания, либо под ним вставляем следующий код.

<div class="description">
			<?php if($product['attribute_groups']) { ?>
			<table>
				<?php foreach($product['attribute_groups'] as $attribute_group) { ?>
				<thead><!--названия групп-->
				<tr>
					<td colspan="2"><?php echo $attribute_group['name']; ?></td>
				</tr>
				</thead><!---->
				<tbody>
					<?php foreach($attribute_group['attribute'] as $attribute) { ?>
				<tr>
					<td><?php echo $attribute['name']; ?></td>
					<td><?php echo $attribute['text']; ?></td>
				</tr>
					<?php } ?>
				</tbody>
				<?php } ?>
			</table>
			<?php } ?>
		</div>

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

Стоит отметить, что если установлен Filter Pro, то характеристики не будут отображаться, поскольку данный фильтр режет дефолтный шаблон вывода товаров в категории и заменяет своим. Для того чтобы это с ним работало нужно сделать те же действия, только для файлов связанных с Filter Pro. Я не пишу решение, так как в разных версиях фильтра разный набор файлов. Аналогичным образом можно вывести атрибуты на странице акций и странице товаров производителей.

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

2 комментария

  1. Доброго времени.
    Как из всех имеющихся атрибутов, вывести только избранные, не все?
    Например, к каждому товару принадлежит 10-12 атрибутов. Но хотелось бы только 4 или 5 самых предпочтительных из них вывести, не все 10 штук.

  2. Андрей, для этого есть платные модули по типу — «Текстовый блок с атрибутами»

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *