Оглавление:
Изменяем длину описаний товаров в каталоге OpenCart 1.5.x
Это решение также убирает "черные ромбики" и иероглифы в конце русских описаний товаров в каталоге. В других местах делается аналогично.
Вероятно, вас тоже удивляет, почему описания товаров, которые выводятся при просмотре каталога магазина, так бездарно и коротко обрезаются. Ведь даже в стандартном дизайне OpenCart v1.5 там могло бы поместиться ещё 2-3 таких же строки с весьма полезной информацией как для покупателя, так и для поисковых систем. Впрочем, и для внешнего вида стандартного шаблона польза немалая.
В основном, конечно, выигрывает посетитель сайта: уменьшается необходимость открывать каждый товар, а у владельцев магазина появляется возможность вынести в начало описания самую важную информацию и дать покупателю удобный способ просмотра основных характеристик похожих товаров уже на этапе ознакомления с ассортиментом, при навигации.
Вот как выглядит страница каталога с описаниями товаров до и после предлагаемой модификации:
Чтобы увеличить длину описаний товаров на страницах каталога, необходимо:
- Открыть файл catalog/controller/product/category.php
- найти поиском строку "substr" (она там одна, OpenCart v1.5.0.5 — 1.5.1.1). Вы увидите небольшой блок из десятка строчек, который начинается с $this->data['products'][] = array(. Перед этой строчкой вставляем 6 строк, приведённых ниже, сразу после этого списка;
- Найденную строку 'description' => ... заменяем на 'description' => $descr_plaintext,
В результате должно получиться:
$cut_descr_symbols = 400; $descr_plaintext = strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')); if( mb_strlen($descr_plaintext, 'UTF-8') > $cut_descr_symbols ) { $descr_plaintext = mb_substr($descr_plaintext, , $cut_descr_symbols, 'UTF-8') . ' …'; } $this->data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => $descr_plaintext, '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']) );
Длина описания регулируется переменной $cut_descr_symbols. В зависимости от дизайна вам может потребоваться изменить эту величину.
Что исправлено:
- До модификации строки укорачивались до 100 символов. Описания длиной 300-500 символов выглядят гораздо лучше;
- символы ".." добавлялись даже к полностью поместившимся описаниям: сейчас символ заменён на HTML-ное троеточие и добавляется только к обрезанным описаниям;
- ну и mbstring, разумеется. Про которую англоязычные авторы часто забывают.
Аналогичным образом стоит сразу же изменить файлы:
- catalog/controller/product/search.php
- catalog/controller/product/special.php
- catalog/controller/product/compare.php
- catalog/controller/product/manufacturer.php
То есть найти похожие места (например, по строке "substr") и внести аналогичные изменения.
То же самое для VQmod / Opencart 1.5.1.3.1
- stalker780:
- Мож кому пригодится vqmod для 1.5.1.3.1 http://shop.clicker.com.ua/download/vqmod_product_long_description_1.0_oc_1.5.1.3.1.zip (локальная копия файла)
http://rb.labtodo.com/page/izmenjaem-dlinu-opisanij-tovarov-v-kataloge-opencart-1505
- Автоматическое монтирование fstab и systemd - 24.02.2021
- Как в Linux подключить новый диск, разметить и отформатировать разделы - 24.02.2021
- Как сменить режим работы PHP - 24.02.2021