Moro3zz

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

Рекомендуемые сообщения

Moro3zz    0

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

 

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

 

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

 

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

Изменено пользователем Moro3zz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
pashast    376
    <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

Изменено пользователем pashast

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Moro3zz    0

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

 

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

Изменено пользователем Moro3zz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
pashast    376

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Moro3zz    0

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

 

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

Изменено пользователем Moro3zz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Wadamir    66

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vitulus    3

               Всем привет !

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

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

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

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

 

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

Изменено пользователем Vitulus

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ARAmiss    0

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
pashast    376

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
mexwin    0

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

 

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\ и файлы темы, что бы краткое описание отображалось на сайте?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
smit69    0

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу