Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[РЕШЕНО] Краткое описание в модулях Рекомендуем Последнее и т.д.


Recommended Posts

Вот решил поделиться, т.к. кто-то спрашивал "как вывести краткое описание в модуль рекомендуем?"

1. В шаблоне в папке module открываем файл featured.tpl

2. Определяемся в каком месте выводим описание, допустим после наименования товара.

3.Находим в файле featured.tpl строку

<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
после нее вставляем следующее

<div id="short-dis"><?php echo $product['description']; ?></div>
По аналогии делаем с другими файлами latest.tpl bestseller.tpl special.tpl

4. Далее идем в папку catalog > controller > module и открываем файл featured.php .

5. Находим кусок кода

$this->data['products'][] = array(
	 'product_id' => $product_info['product_id'],
	 'thumb'	 => $image,
	 'name'	  => $product_info['name'],
	 'price'	 => $price,
	 'special'   => $special,
	 'rating'	 => $rating,
	 'reviews'	=> sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']),
	 'href'	  => $this->url->link('product/product', 'product_id=' . $product_info['product_id']),

и после

'product_id' => $product_info['product_id'],
вставляем следующую строку

'description' => mb_substr(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
в файлах latest.php bestseller.php special.php вставить

строку

'description' => mb_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
Что означает строка
'description' => mb_substr(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
она выводит описание с максимальным кол-вом символов 100, поэтому если вам надо больше символов или меньше, то меняете в конце строки число 100 на свое.

6. В файле стилей, т.е. в stylesheet.css в самом низу добавляем стили для нового блока short-dis

например такой:


#short-dis{
	display: block;
	color:#000000;
	font:12px;
  
}

Вроде все...

Змінено користувачем askirov
  • +1 2
Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

Инструкция по добавлению дополнительного поля "Краткое описание" к товару и его вывод в модулях "Рекомендуем", "Последнее", "Популярное" и других, которые выводятся на главную страницу. При желании это краткое описание можно выводить после этих изменений где угодно. За основу была взята статья Владислава Храмцова для добавления такого же поля но для OpenCart <1.5. Данный гайд составлен и точно работает на OpenCart 1.5.1.3.

1. Создаем дополнительное поле short_description в базе данных в таблице product_description. Распологаться оно должно перед полем description. Первый шаг совпадает с первым шагом статьи от Влада. Там можно посмотреть скриншоты.

2. Открываем файл product.php (../admin/controller/catalog) и после строки 544

$this->data['entry_description'] = $this->language->get('entry_description');
вставляем строку

$this->data['entry_short_description'] = $this->language->get('entry_short_description');

3. Открываем файл product.php (../admin/language/russian/catalog) и перед этой строкой (32):

$_['entry_description']	  = 'Описание:';
вставляем строку

$_['entry_short_description']	  = 'Краткое описание:';

4. Далее открываем файл product_form.tpl (../admin/view/template/catalog) и после этих строк (47-50):

<tr>
			    <td><?php echo $entry_meta_description; ?></td>
			    <td><textarea name="product_description[<?php echo $language['language_id']; ?>][meta_description]" cols="100" rows="2"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['meta_description'] : ''; ?></textarea></td>
			  </tr>
вставляем

<tr>
    <td><?php echo $entry_short_description; ?></td>
    <td><textarea name="product_description[<?php echo $language['language_id']; ?>][short_description]" cols="40" rows="5"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['short_description'] : ''; ?></textarea></td>
	 </tr>

5. Открываем файл product.php (../admin/model/catalog) и строку 13:

$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', seo_title = '" . $this->db->escape($value['seo_title']) . "', seo_h1 = '" . $this->db->escape($value['seo_h1']) . "'");
заменяем на

$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', short_description = '" . $this->db->escape($value['short_description']) . "', description = '" . $this->db->escape($value['description']) . "', seo_title = '" . $this->db->escape($value['seo_title']) . "', seo_h1 = '" . $this->db->escape($value['seo_h1']) . "'");

Далее строку 139

$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', seo_title = '" . $this->db->escape($value['seo_title']) . "', seo_h1 = '" . $this->db->escape($value['seo_h1']) . "'");
заменяем на

$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', short_description = '" . $this->db->escape($value['short_description']) . "', description = '" . $this->db->escape($value['description']) . "', seo_title = '" . $this->db->escape($value['seo_title']) . "', seo_h1 = '" . $this->db->escape($value['seo_h1']) . "'");

И наконец после строки 473

'meta_description' => $result['meta_description'],
вставляем

'short_description'      => $result['short_description']
Не забудьте поставить после строки 473 запятую в конце.

После этого идем в админку на страницу редактирования товара, должно появиться поле "Краткое описание" как на изображении ниже

Изображение

6. Далее выведем значение этого поля в нужные нам места, рассмотрим на примере вывода в популярных товарах, для других модулей вы сможете сделать это по аналогии, процесс совершенно идентичен.

Откройте файл featured.php (../catalog/controller/module) и после строки 48

'product_id' => $product_info['product_id'],
вставьте

'short_description' => $product_info['short_description'],

7. Далее откройте файл featured.tpl (../catalog/view/theme/default/template/module) и после этой строки (9):

	    <div class="product-name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
вставьте

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

Если вы выполнили все шаги правильно, вы увидите приблизительно следующее

Изображение

  • +1 4
Надіслати
Поділитися на інших сайтах


Для того, чтобы вывести "Краткое описание" на странице категории товаров вместо обрезанного полного описания необходимо проделать 2 шага после первых пяти шагов:

1. Откройте файл /catalog/controller/product/category.php

После строки 195

‘product_id’ => $result['product_id'],
вставьте строку

‘short_description’ => $result['short_description'],
2. Затем откройте файл /catalog/view/theme//template/product/category.tpl

найдите в нем строку 76

<div class="description"><?php echo $product['description']; ?></div>
и замените ее на

<div class="description"><?php echo $product['short_description']; ?></div>
  • +1 3
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Вывод краткого описания в карточке товара (product.tpl)

Успешно вывел в latest.tpl, но не получается вывести в product.tpl

добавил в /catalog/controller/product/product.php после строки 335

'product_id' => $result['product_id'],
строку

'short_description'=> $result['short_description'],
в файле /catalog/view/theme/sitename/template/product/product.tpl добавил

<?php echo $product['short_description']; ?>
получаю Notice Undefined variable: product in catalogviewthemesitenametemplateproductproduct.tpl on line 30

help версия 1.5.1.3

Решил вопрос:

в /catalog/controller/product/product.php после строки 302

$this->data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8');
добавляем строку

$this->data['short_description'] = html_entity_decode($product_info['short_description'], ENT_QUOTES, 'UTF-8');

в product.tpl выводим так

<?php echo $short_description; ?>
Надіслати
Поділитися на інших сайтах


  • 1 month later...

Для того, чтобы вывести "Краткое описание" на странице категории товаров вместо обрезанного полного описания необходимо проделать 2 шага после первых пяти шагов:

1. Откройте файл /catalog/controller/product/category.php

После строки 195

‘product_id’ => $result['product_id'],
вставьте строку

‘short_description’ => $result['short_description'],
2. Затем откройте файл /catalog/view/theme//template/product/category.tpl

найдите в нем строку 76

<div class="description"><?php echo $product['description']; ?></div>
и замените ее на

<div class="description"><?php echo $product['short_description']; ?></div>
подскажите пожалуйста, после добавления этих строк в шапке появляется :

Notice: Use of undefined constant �short_description� - assumed '�short_description�' in /home/forhome/forhome.lg.ua/www/catalog/controller/product/category.php on line 196

а в графе где должно быть краткое описание:

Notice

: Undefined index: short_description in

/home/forhome/forhome.lg.ua/www/catalog/view/theme/default/template/product/category.tpl

on line

76,

чего делаю не так?

Надіслати
Поділитися на інших сайтах


  • 5 weeks later...

Подскажите, а как сделать, чтобы в кратком описании можно было использовать теги html.

Мне, например, нужно разместить характеристики товара в столбик

Ширина:

Длина:

Высота:

Вес:

и т.д.

Сейчас же описание выводится только в строчку...

Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

заработало, когда ввел эту строку вручную short_description=> $result['short_description'], ,а не скопировал

Подтверждаю. Проблема в двух кавычках.

Исправьте пожалуйста!!!!

Надіслати
Поділитися на інших сайтах


ocstore ..1.5.2

После всего проделанного, при внесении данных в карточке товара в "кратком описании товара", при сохранении, пишет ошибку

Notice: Undefined index: seo_title in S:....adminmodelcatalogproduct.php on line 141Notice: Undefined index: seo_h1 inS:...adminmodelcatalogproduct.php on line 141Warning: Cannot modify header information - headers already sent by (output started at S:...adminindex.php:79) in S:....systemenginecontroller.php on line 28Warning: Cannot modify header information - headers already sent by (output started at S:....adminindex.php:79) in S:....systemenginecontroller.php on line 29

При чем все сохраняется, и работает, но ошибка вылазит.

Смею предположить ругается на последнии фразы в файле adminmodelcatalogproduct.php

код:

$this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', short_description = '" . $this->db->escape($value['short_description']) . "', description = '" . $this->db->escape($value['description']) . "', seo_title = '" . $this->db->escape($value['seo_title']) . "', seo_h1 = '" . $this->db->escape($value['seo_h1']) . "'");

Посоветуйте, как решить, или я где то ошибся...

Надіслати
Поділитися на інших сайтах


  • 3 months later...

Может быть немного не "в тему", но может кто подскажет, как вывести в модулях рейтинг товара (звезды), чтобы при отсутствии оценок у товара выводились "белые" звезды, как в карточке товара?

Надіслати
Поділитися на інших сайтах


Кто может помочь? Вывести краткое описание в рекомендуемые на главной удалось, все работает. А вот вывести краткое описание товара в категориях никакого результата не дал. У меня чистый Opencart 1.5.3.1. Если еще можно расскажите как вивисты краткое описание товара вместо сокращенного-полного, не только и виде списка, но и в виде сетки.

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

HELP!

сделал все по инструкции, однако, после того как нажимаю кнопку "сохранить" или копирую товар, выдает следующую ошибку:

Error: Column count doesn't match value count at row 1

Error No: 1136

INSERT INTO oc_product_description (product_id, language_id, name, meta_keywords, meta_description, description, title, h1) VALUES ('181', '1', 'Focus Black Rider 2.0 2012*', 'велосипеды горные Focus Black Rider 2.0 2012', 'велосипеды горные Focus Black Rider 2.0 2012', '<p>rn Тип: универсальный хардтэйл<br />rn Материал рамы: алюминий <br />rn Тип рамы (мужская, женская): мужская <br />rn Вилка: RockShox XC30 TK RL 100мм <br />rn Задний амортизатор: нет <br />rn Количество скоростей: 30 <br />rn Трансмиссия: Sram <br />rn Размер колеса: 26" <br />rn Втулки: Concept SL Disc <br />rn Обода: двойные, Rodi Freeway Disc <br />rn Покрышки: Continental Traffic 26"x2,0" <br />rn Тормоза: дисковые гидравлические, Avid Elixir 1 <br />rn Шатуны: Sram S800 <br />rn Манетки: Sram X.7 <br />rn Задний переключатель: Sram X.9 <br />rn Передний переключатель: Sram X.7 <br />rn Цепь: Sram <br />rn Кассета: Sram 11-32 <br />rn Вынос: Concept SL <br />rn Руль: Concept EX Riser <br />rn Подседельный штырь: Concept EX <br />rn Седло: Concept</p>rn', 'велосипеды горные Focus Black Rider 2.0 2012', 'Focus Black Rider 2.0 2012', '')

Причем, если сохранить существующий товар, он удаляется из базы данных :(((

Помогите, что сделать?

Надіслати
Поділитися на інших сайтах


Сделала все по инструкции, краткое описание не выводится+ при внесении нового товара/внесении изменений выдает ошибку:

Notice: Error: Duplicate entry '68-0' for key 'PRIMARY'

Error No: 1062

INSERT INTO product_to_store SET product_id = '68', store_id = '0' in Z:homemax153wwwsystemdatabasemysql.php on line 49

Что надо сделать, чтобы все нормально работало, как у людей?)

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
  • 2 weeks later...

Добрый день! Для версии 1.5.4.1 ошибка Notice: Undefined index: short_description ... кто-нибудь пробовал реализовывать?

Notice: Undefined index: short_description in /var/www/vh89714/data/www/perfectlash.ru/catalog/controller/module/featured.php on line 103Notice: Undefined index: short_description in /var/www/vh89714/data/www/perfectlash.ru/catalog/controller/module/featured.php on line 103

Это происходит после радактирования featured.php

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

в 1.5.4.1 после вставки в


catalogcontrollerproductcategory.php

кода

'short_description' => $result['short_description'],

выдает ошибку и нарушается кодировка

Notice: Undefined index: short_description in K:homelocalhostwwwocstorecatalogcontrollerproductcategory.php on line 196

файл сохраняю в UTF-8 без BOM

Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

Знающие, подскажите, пожалуйста, как подключить CKEDITOR к краткому описанию товара

Все вышеуказанные шаги проделал - всё получилось

Пробовал вот так

к этому:

<script type="text/javascript" src="view/javascript/ckeditor/ckeditor.js"></script>

<script type="text/javascript"><!--

<?php foreach ($languages as $language) { ?>

CKEDITOR.replace('description<?php echo $language['language_id']; ?>', {

filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',

filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',

filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',

filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',

filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',

filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>'

});

<?php } ?>

//--></script>

добавил это:

<script type="text/javascript"><!--

<?php foreach ($languages as $language) { ?>

CKEDITOR.replace('short_description<?php echo $language['language_id']; ?>', {

filebrowserBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',

filebrowserImageBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',

filebrowserFlashBrowseUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',

filebrowserUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',

filebrowserImageUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>',

filebrowserFlashUploadUrl: 'index.php?route=common/filemanager&token=<?php echo $token; ?>'

});

<?php } ?>

//--></script>

В Админке поле появилось, однако при просмотре в браузере - не работает

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

Просветите, в чём проблема ????

Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

в 1.5.4.1 после вставки в

catalog\controller\product\category.php

кода

'short_description' => $result['short_description'],

выдает ошибку и нарушается кодировка
[b]Notice[/b]: Undefined index: short_description in [b]K:\home\localhost\www\ocstore\catalog\controller\product\category.php[/b] on line [b]196[/b] 

файл сохраняю в UTF-8 без BOM

Для 1.5.4.1 есть решение вывода краткого описания ?

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Я решил задачу как хотя бы сделать что бы текст в столбик писало.

В файле product.tpl на строке где мы писали:

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

заменить на:

<p style="white-space: pre-line;"><?php echo $product_info['short_description']; ?></p>

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

Если в админке CKEDITOR у вас уже появился (как вставлять было написано в этой теме ранее nsvik от 10 Декабрь 2012 - 15:28), но на странице текст идёт в одну строку, то в файлах (.php) в сылках необходимо добавлять html_entity_decode, например, в category.php

вместо 'short_description' => $result['short_description'],

вообще правильно писать

'description' => $result['short_description'],

вставляйте

'description' => html_entity_decode($result['short_description'], ENT_QUOTES, 'UTF-8'),

Текст не пишите большой, т.к. ограничений по объёму нет, а когда текста много, то некрасиво.

По аналогии можно везде так исправить.

И будет у вас нормальный html текст

  • +1 1
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.