Изменяем длину описаний товаров в каталоге OpenCart 1.5.x




Изменяем длину описаний товаров в каталоге OpenCart 1.5.x

26 июля 2011 г. Ruslan Brest Просмотров: 8026 RSS 65
Howto » OpenCart
@todo, marketing, mbstring, sales, usability

Это решение также убирает "черные ромбики" и иероглифы в конце русских описаний товаров в каталоге. В других местах делается аналогично.

Вероятно, вас тоже удивляет, почему описания товаров, которые выводятся при просмотре каталога магазина, так бездарно и коротко обрезаются. Ведь даже в стандартном дизайне OpenCart v1.5 там могло бы поместиться ещё 2-3 таких же строки с весьма полезной информацией как для покупателя, так и для поисковых систем. Впрочем, и для внешнего вида стандартного шаблона польза немалая.

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

Вот как выглядит страница каталога с описаниями товаров до и после предлагаемой модификации:


Чтобы увеличить длину описаний товаров на страницах каталога, необходимо:

  1. Открыть файл catalog/controller/product/category.php
  2. найти поиском строку "substr" (она там одна, OpenCart v1.5.0.5 — 1.5.1.1). Вы увидите небольшой блок из десятка строчек, который начинается с $this->data['products'][] = array(. Перед этой строчкой вставляем 6 строк, приведённых ниже, сразу после этого списка;
  3. Найденную строку '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, 0,
		$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

Губарь Маргарита Александровна