Тестировано под 1.5.3.1
Многие сталкивались с вопросом о выводе количества просмотров для каждого товара(Ведь эта функция уже есть в opencart).
Пытался сам найти, но к сожалению ответов не было... Решил сам разобраться с этим, попытаюсь все кратко описать.
Для начала, опишу как сделать вывод просмотров для категорий. И так откроем наш главный css.
WebServershomenameSitewwwcatalogviewthemenameThemestylesheetstylesheet.css
Создадим такие строчки: (Это будет стиль текста для вывода просмотров, изменять можно на свое усмотрение)
.ptext {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 15px;
}
После этого найдем и откроем файлик шаблона категории:
WebServershomenameSitewwwcatalogviewthemenameThemetemplateproductcategory.php
В нем ищем кусок кода:
<div class="price">
<?php if (!$product['special']) { ?>
<?php echo $product['price']; ?>
<?php } else { ?>
<span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
<?php } ?>
Добавим в конце этого кусочка кода:
<div class="ptext">Просмотров: <?php echo $product['viewed']; ?></div>
В данном случае, мы выводим переменную которая отвечает за просмотры.
Хорошо, теперь Мы подготовили место куда будет выводиться, но этого не достаточно, в опенкаре будет выводиться ошибка типа "Переменная не найдена".
Для исправления этого, найдем файлик:
WebServershomenameSitewwwcatalogcontrollerproductcategory.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', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
заменяем полность или просто дописываем " 'viewed' => $result['viewed'], ". Должно получиться что то типа:
$this->data['products'][] = array(
'viewed' => $result['viewed'],
'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', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
Здесь мы выводим с mysql столбец в товаре под названием "viewed". Который и отвечает за просмотры..
Вот в принципе и все...
В ближайшее время выложу как сделать тоже самое для продукта.
P.S. Сильно не критикуйте, пишу первый раз...