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

[Решено] Краткое описание товара в каталоге


Recommended Posts

Вначале выполняем запрос в базу данных

ALTER  TABLE  `product_description`  ADD  `description_mini` TEXT NOT  NULL  AFTER  `name` ;
Затем открываем admin/model/catalog/product.php

Ищем функцию getProductDescriptions() (~434 строка)

После

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

Дописываем

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

В этом же файле в функции addProduct() (~3 строка)

Запрос

foreach ($data['product_description'] as $language_id => $value) {
			$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']) . "'");		}

Модицицируем и получаем

foreach ($data['product_description'] as $language_id => $value) {
			$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']) . "', description_mini = '" . $this->db->escape($value['description_mini']) . "'");
		}

Теперь необходимо в функции editProduct() (~ 130 строка) сделать практически тоже самое

Это

foreach ($data['product_description'] as $language_id => $value) {
			$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']) . "'");
		}

Меняем на это

foreach ($data['product_description'] as $language_id => $value) {
			$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']) . "', description_mini = '" . $this->db->escape($value['description_mini']) . "'");		}

Затем, открываем admin\view\template\catalog\product_form.tpl

Ищем

<tr>
                <td><?php echo $entry_description; ?></td>
                <td><textarea name="product_description[<?php echo $language['language_id']; ?>][description]" id="description<?php echo $language['language_id']; ?>"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['description'] : ''; ?></textarea></td>
              </tr>

До или после добавляем

<tr>
                <td><?php echo $entry_description; ?></td>
                <td><textarea name="product_description[<?php echo $language['language_id']; ?>][description_mini]" id="description<?php echo $language['language_id']; ?>"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['description_mini'] : ''; ?></textarea></td>
              </tr>

ВСЕ! С Админкой закончили

Теперь перейдем на фронт

Открываем catalog\model\product\category.php

Ищем функцию getProduct() ~7 строка

после

'description'      => $query->row['description'],

Добавляем

'description_mini'      => $query->row['description_mini'],
Открываем catalog\controller\catalog\category.php

Ищем

$descr_plaintext = strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'));
До или после дописываем

$descr_mini = strip_tags(html_entity_decode($result['description_mini'], ENT_QUOTES, 'UTF-8'));
И чуть ниже в массив добавляем

description_mini' => $descr_mini,
Открываем файл \catalog\view\theme\default\template\product\category.tpl

Ив нужном месте пишем

<?php echo $product['description_mini']; ?>

ВОТ И ВСЕ!!!

p.s. Это описание для OpenCart 1.5.x

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


Из какого файла запрос выполнять?

Это MySQL запрос, так что открывай PHPMyadmin (или незнаю чем пользуешся для работы с БД) и выполняй запросс...

A для версии 0.2.0 сильно отличаться будет?

Именно это что я написал может не подойти, а вот идея пдойдет...

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


Это MySQL запрос, так что открывай PHPMyadmin (или незнаю чем пользуешся для работы с БД) и выполняй запросс...

Просто у меня похожая ситуация, весь мозг сломал(

Пытаюсь под списком товаров категории выводить description2.

Делаю по аналогии с description, инициализация и запрос видимо происходят в

admin/model/catalog/category.php:

foreach ($data['category_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "category_description (category_id, language_id, name, meta_keywords, meta_description, description, description2, title, h1) VALUES ('" . (int)$category_id . "', '" . (int)$language_id . "', '" . $this->db->escape($value['name']) . "', '" . $this->db->escape($value['meta_keywords']) . "', '" . $this->db->escape($value['meta_description']) . "', '" . $this->db->escape($value['description']) . "', '" . $this->db->escape($value['description2']) . "', '" . $this->db->escape($value['title']) . "', '" . $this->db->escape($value['h1']) . "')");
		}

foreach ($data['category_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "category_description (category_id, language_id, name, meta_keywords, meta_description, description, description2, title, h1) VALUES ('" . (int)$category_id . "', '" . (int)$language_id . "', '" . $this->db->escape($value['name']) . "', '" . $this->db->escape($value['meta_keywords']) . "', '" . $this->db->escape($value['meta_description']) . "', '" . $this->db->escape($value['description']) . "', '" . $this->db->escape($value['description2']) . "', '" . $this->db->escape($value['title']) . "', '" . $this->db->escape($value['h1']) . "')");
		}

foreach ($query->rows as $result) {
			$category_description_data[$result['language_id']] = array(
				'name'             => $result['name'],
				'meta_keywords'    => $result['meta_keywords'],
				'meta_description' => $result['meta_description'],
				'description'      => $result['description'],
                                [b]'description2'     => $result['description2'],[/b]
				'title'			   => $result['title'],
				'h1'			   => $result['h1'],
			);
		}

И вот тут выдает ошибку:

Notice: Undefined index: description2 in /home/manicur1/public_html/admin/model/catalog/category.php on line 142,

ссылаясь на строку

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

PS. Пользуюсь блокнотом)) Так и не понял почему нельзя обойтись без PHPMyAdmin и подобных ^^

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


во всех норм добавилось а на одном не хочет пишет

#1146 - Table 'appletrue.product_description' doesn't exist

кто знает как исправить?

верисия 1.0.1

сделал сам_)) сорри

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


  • 1 month later...

А как сделать чтобы теги еще там работали?

Так что народ есть решение....В админке краткое описание чтобы с тегами можно было делать...а то получается фигня полная(((

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


  • 6 months later...

как сделать краткое описание на 1.5.3 Подскажите?

вот так-вот https://opencartforum.com/topic/5399-%d0%ba%d1%80%d0%b0%d1%82%d0%ba%d0%be%d0%b5-%d0%be%d0%bf%d0%b8%d1%81%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%b0-%d0%b2-%d0%ba%d0%b0%d1%82%d0%b0%d0%bb%d0%be%d0%b3%d0%b5/page__view__findpost__p__34868

p.s строчки могут не совпадать

p.p.s удалить функцию strip_tags...

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


  • 2 weeks later...

p.s строчки могут не совпадать

.

Там не то, что строчки не совпадают для версии 1.5.3, а и наличие файлов и папок.

Пример:

Открываем catalogmodelproductcategory.php

Открываем catalogcontrollercatalogcategory.php

Лично у меня папок product и catalog нет

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


  • 4 years later...
  • 2 weeks later...

Там "очепятка" в конце файла

<file path="catalog/view/theme/*/template/product/product.tpl">
<operation>
<search position="after"><![CDATA[<li><?php echo $text_stock; ?> <?php echo $stock; ?></li>]]></search>
<add><![CDATA[
<?php if ($add_info) { ?>
<div class="well" style="">   
<?php echo $add_info; ?>
</div>
<?php } ?>
]]></add>
</operation>
</file>

нужно заменить на 

<file path="catalog/view/theme/*/template/product/product.tpl">
<operation>
<search><![CDATA[<li><?php echo $text_stock; ?> <?php echo $stock; ?></li>]]></search>
<add position="after"><![CDATA[
<?php if ($add_info) { ?>
<div class="well" style="">   
<?php echo $add_info; ?>
</div>
<?php } ?>
]]></add>
</operation>
</file> 
 
  • +1 1
Надіслати
Поділитися на інших сайтах

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

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

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

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

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

Вхід

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

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

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

Important Information

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