Главная » 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>

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

Статья по теме:  Делаем Email рассылку на Opencart

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

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

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

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

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

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

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