Jump to content
Sign in to follow this  
Moro3zz

Краткое описание товара

Recommended Posts

Хочу сделать так чтобы было краткое описание товара и оно отличалось от полного описания товара.

 

хочу потом краткое описание выводить при отображении товаров сеткой.

 

Нашел инструкцию все вроде подробно,

 

http://forum.opencart.pro/topic/1952-краткое-описание-товара-для-opencart-ocshop-2xx/

 

нижнее сообщение на форуме

 

но у меня ни как не выходит, бьюсь который час, ошибка на скриншоте.

 

Может кто поможет.

 

Дело не в названии переменной делал и mini_description и description_mini. 

 

у меня Opencart Версия 2.1.0.2

 

я так понимаю что не видит переменную. кодировку всех файлов поставил utf-8

 

Даже если в базе данных в mini_description создаю описание в карточке товара не показывается.

 

Подскажите куда смотреть.

 

Может модуль есть готовый

post-688975-0-25848200-1463889141_thumb.png

Edited by Moro3zz

Share this post


Link to post
Share on other sites
    <file path="admin/model/catalog/product.php">
        <operation>
            <search><![CDATA[if (isset($data['product_store'])) {]]></search>
            <add position="before"><![CDATA[
                //added template
                foreach ($data['product_description'] as $language_id => $value) {
                    $this->db->query("UPDATE " . DB_PREFIX . "product_description
                    SET short_description = '" . $this->db->escape($value['short_description']) . "'
                    WHERE product_id = '" . (int)$product_id . "'
                    AND language_id = '" . (int)$language_id . "'");
                }
                //added template
			]]></add>
        </operation>
        <operation>
            <search><![CDATA['meta_keyword'     => $result['meta_keyword'],]]></search>
            <add position="after"><![CDATA[
                'short_description'     => $result['short_description'], //added template
			]]></add>
        </operation>
    </file>
	<file path="admin/view/template/catalog/product_form.tpl">
		<operation>
			<search ><![CDATA[<label class="col-sm-2 control-label" for="input-tag<?php echo $language['language_id']; ?>"><span data-toggle="tooltip" title="<?php echo $help_tag; ?>"><?php echo $entry_tag; ?></span></label>]]></search>
			<add position="before" offset="1"><![CDATA[
                    <!--//added template-->
                  <div class="form-group">
                    <label class="col-sm-2 control-label" for="input-short-description<?php echo $language['language_id']; ?>">Краткое описание:</label>
                    <div class="col-sm-10">
                      <textarea name="product_description[<?php echo $language['language_id']; ?>][short_description]" rows="5" placeholder="Краткое описание" id="input-short-description<?php echo $language['language_id']; ?>" class="form-control"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['short_description'] : ''; ?></textarea>
                    </div>
                  </div>
                    <!--//added template-->
			]]></add>
		</operation>
	</file>

Вот кусок ocmod, отвечает за добавление краткого описания в админке, только тут переменная называется short_description

Edited by pashast

Share this post


Link to post
Share on other sites

РАБОЧАЯ ИНСТРУКЦИЯ!!

 

1 В вашей базе данных создаем поле short_description в таблице oc_product_description, все атрибуты как и в description

 

я делал через phpmyadmin
 
2. файл admin/model/catalog/product.php
 
2а.
находим код

if (isset($data['product_store']))

18 строка
 
добавляем выше 

foreach ($data['product_description'] as $language_id => $value) {
                    $this->db->query("UPDATE " . DB_PREFIX . "product_description
                    SET short_description = '" . $this->db->escape($value['short_description']) . "'
                    WHERE product_id = '" . (int)$product_id . "'
                    AND language_id = '" . (int)$language_id . "'");
                }
//added template

находим второй раз

if (isset($data['product_store']))

153 строка стала

 

добавляем выше

foreach ($data['product_description'] as $language_id => $value) {
                    $this->db->query("UPDATE " . DB_PREFIX . "product_description
                    SET short_description = '" . $this->db->escape($value['short_description']) . "'
                    WHERE product_id = '" . (int)$product_id . "'
                    AND language_id = '" . (int)$language_id . "'");
                }
//added template

2б.
находим

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

теперь 450 строка
 
добавляем   

'short_description'     => $result['short_description'], //added template

 
3. файл admin/view/template/catalog/product_form.tpl
 
находим

 <label class="col-sm-2 control-label" for="input-tag<?php echo $language['language_id']; ?>"><span data-toggle="tooltip" title="<?php echo $help_tag; ?>"><?php echo $entry_tag; ?></span></label>

88 строка
перед открывающемся слоем <div class="form-group"> добавляем
 

                  <!--//added template-->
                  <div class="form-group">
                    <label class="col-sm-2 control-label" for="input-short-description<?php echo $language['language_id']; ?>">Краткое описание:</label>
                    <div class="col-sm-10">
                      <textarea name="product_description[<?php echo $language['language_id']; ?>][short_description]" rows="5" placeholder="Краткое описание" id="input-short-description<?php echo $language['language_id']; ?>" class="form-control"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['short_description'] : ''; ?></textarea>
                    </div>
                  </div>
                    <!--//added template-->

Можно этот слой вставить куда вам удобнее, например под основное описание.  

5. файл admin\controller\catalog\product.php
 
 ищем код

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

 строка 542 добавляем ниже

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

 
6. файл \admin\language\russian\catalog\product.php
 
ищем код

$_['entry_description']      = 'Описание';

 добавляем ниже  

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

7. все файлы в UTF-8 и заливаем

 

8. Долго мучался надо не забыть обновить кеш дополнений

 

Дополнения-дополнения-справа наверху кнопка обновить

 

У меня работает на 2.1.0.2

Edited by Moro3zz

Share this post


Link to post
Share on other sites

кеш дополнений обновили? может что закешировалось

Share this post


Link to post
Share on other sites

Да. Спасибо. как раз хотел написать что разобрался.

 

Слева меню Дополнения-дополнения-справа наверху кнопка обновить. Все заработало!

Edited by Moro3zz

Share this post


Link to post
Share on other sites

А я вот под это дело пустил meta description. Только побольше его сделал и всё.

Share this post


Link to post
Share on other sites

               Всем привет !

    Только недавно начал разбираться с Open Cart и не хватает знаний, в частности по php. Во-первых, огромное спасибо Moro3zz за инструкцию, но возник вопрос, как сделать так, чтобы появилось краткое описание, например, в карточках рекомендуемых товаров ?

    На данный момент в админке уже есть поле "краткое описание". Я так понимаю, что нужно какое-то значение прописать в файле featured.tpl по пути

/public_html/catalog/view/theme/default/template/module и еще в каких-то файлах.

     Подскажите, пожалуйста, в каких файлах и какие значения нужно прописать, чтобы подтянулись данные из поля краткое описание - админки ?

 

     P/s. Версия OpenCart 2.2.

Edited by Vitulus

Share this post


Link to post
Share on other sites

А я вот под это дело пустил meta description. Только побольше его сделал и всё.

 

Тоже не стал изобретать новые поля. Использовал поле MPN. Оно всё равно бесполезное.

Share this post


Link to post
Share on other sites

Тоже не стал изобретать новые поля. Использовал поле MPN. Оно всё равно бесполезное.

А как же мультиязычность?

Share this post


Link to post
Share on other sites

РАБОЧАЯ ИНСТРУКЦИЯ!!

 

1 В вашей базе данных создаем поле short_description в таблице oc_product_description, все атрибуты как и в description

 

я делал через phpmyadmin

 

2. файл admin/model/catalog/product.php

 

2а.

находим код

if (isset($data['product_store']))

18 строка

 

добавляем выше 

foreach ($data['product_description'] as $language_id => $value) {
                    $this->db->query("UPDATE " . DB_PREFIX . "product_description
                    SET short_description = '" . $this->db->escape($value['short_description']) . "'
                    WHERE product_id = '" . (int)$product_id . "'
                    AND language_id = '" . (int)$language_id . "'");
                }
//added template

находим второй раз

if (isset($data['product_store']))

153 строка стала

 

добавляем выше

foreach ($data['product_description'] as $language_id => $value) {
                    $this->db->query("UPDATE " . DB_PREFIX . "product_description
                    SET short_description = '" . $this->db->escape($value['short_description']) . "'
                    WHERE product_id = '" . (int)$product_id . "'
                    AND language_id = '" . (int)$language_id . "'");
                }
//added template

2б.

находим

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

теперь 450 строка

 

добавляем   

'short_description'     => $result['short_description'], //added template

 

3. файл admin/view/template/catalog/product_form.tpl

 

находим

 <label class="col-sm-2 control-label" for="input-tag<?php echo $language['language_id']; ?>"><span data-toggle="tooltip" title="<?php echo $help_tag; ?>"><?php echo $entry_tag; ?></span></label>

88 строка

перед открывающемся слоем <div class="form-group"> добавляем

 

                  <!--//added template-->
                  <div class="form-group">
                    <label class="col-sm-2 control-label" for="input-short-description<?php echo $language['language_id']; ?>">Краткое описание:</label>
                    <div class="col-sm-10">
                      <textarea name="product_description[<?php echo $language['language_id']; ?>][short_description]" rows="5" placeholder="Краткое описание" id="input-short-description<?php echo $language['language_id']; ?>" class="form-control"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['short_description'] : ''; ?></textarea>
                    </div>
                  </div>
                    <!--//added template-->

Можно этот слой вставить куда вам удобнее, например под основное описание.  

5. файл admin\controller\catalog\product.php

 

 ищем код

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

 строка 542 добавляем ниже

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

 

6. файл \admin\language\russian\catalog\product.php

 

ищем код

$_['entry_description']      = 'Описание';

 добавляем ниже  

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

7. все файлы в UTF-8 и заливаем

 

8. Долго мучался надо не забыть обновить кеш дополнений

 

Дополнения-дополнения-справа наверху кнопка обновить

 

У меня работает на 2.1.0.2

Все действия проводятся в \admin\. Я не специалист, но разве не нужно редактировать \catalog\ и файлы темы, что бы краткое описание отображалось на сайте?

Share this post


Link to post
Share on other sites

РАБОЧАЯ ИНСТРУКЦИЯ!!

 

1 В вашей базе данных создаем поле short_description в таблице oc_product_description, все атрибуты как и в description

 

я делал через phpmyadmin

 

2. файл admin/model/catalog/product.php

 

2а.

находим код

if (isset($data['product_store']))

18 строка

 

добавляем выше 

foreach ($data['product_description'] as $language_id => $value) {
                    $this->db->query("UPDATE " . DB_PREFIX . "product_description
                    SET short_description = '" . $this->db->escape($value['short_description']) . "'
                    WHERE product_id = '" . (int)$product_id . "'
                    AND language_id = '" . (int)$language_id . "'");
                }
//added template

находим второй раз

if (isset($data['product_store']))

153 строка стала

 

добавляем выше

foreach ($data['product_description'] as $language_id => $value) {
                    $this->db->query("UPDATE " . DB_PREFIX . "product_description
                    SET short_description = '" . $this->db->escape($value['short_description']) . "'
                    WHERE product_id = '" . (int)$product_id . "'
                    AND language_id = '" . (int)$language_id . "'");
                }
//added template

2б.

находим

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

теперь 450 строка

 

добавляем   

'short_description'     => $result['short_description'], //added template

 

3. файл admin/view/template/catalog/product_form.tpl

 

находим

 <label class="col-sm-2 control-label" for="input-tag<?php echo $language['language_id']; ?>"><span data-toggle="tooltip" title="<?php echo $help_tag; ?>"><?php echo $entry_tag; ?></span></label>

88 строка

перед открывающемся слоем <div class="form-group"> добавляем

 

                  <!--//added template-->
                  <div class="form-group">
                    <label class="col-sm-2 control-label" for="input-short-description<?php echo $language['language_id']; ?>">Краткое описание:</label>
                    <div class="col-sm-10">
                      <textarea name="product_description[<?php echo $language['language_id']; ?>][short_description]" rows="5" placeholder="Краткое описание" id="input-short-description<?php echo $language['language_id']; ?>" class="form-control"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['short_description'] : ''; ?></textarea>
                    </div>
                  </div>
                    <!--//added template-->

Можно этот слой вставить куда вам удобнее, например под основное описание.  

5. файл admin\controller\catalog\product.php

 

 ищем код

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

 строка 542 добавляем ниже

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

 

6. файл \admin\language\russian\catalog\product.php

 

ищем код

$_['entry_description']      = 'Описание';

 добавляем ниже  

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

7. все файлы в UTF-8 и заливаем

 

8. Долго мучался надо не забыть обновить кеш дополнений

 

Дополнения-дополнения-справа наверху кнопка обновить

 

У меня работает на 2.1.0.2

я проделал тоже самое, в админке появилось нужное поле, но если что-то там написать, то ни чего не выводится на товаре

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.