OC 1.5.x Краткое описание товара.

Тема в разделе "Модули и дополнения", создана пользователем lexa.22rus, 27 июл 2015.

  1. lexa.22rus

    lexa.22rus Пользователь

    Сообщения:
    68
    Симпатии:
    1

    Вот код файла расширения vx_ShortDescription_latest_featured_special.xml.
    Вот его код:
    Код:
    <modification>
        <id>vx_ShortDescription_latest_featured_special</id>
        <version>1.1</version>
        <vqmver>2.4.0</vqmver>
        <author>Vxinfosystem</author>
            <file name="admin/language/english/catalog/product.php">
                <operation>
                    <search position="after"><![CDATA[$_['entry_description']      = 'Description:';]]>
                    </search>
                    <add><![CDATA[$_['entry_short_description']      = 'Short Description:';]]></add>
                  </operation>
            </file>
            <file name="admin/controller/catalog/product.php">
                <operation>
                    <search position="after"><![CDATA[$this->data['entry_description'] = $this->language->get('entry_description');]]>
                    </search>
                    <add><![CDATA[$this->data['entry_short_description'] = $this->language->get('entry_short_description');]]></add>
                  </operation>
            </file>
            <file name="admin/model/catalog/product.php">
                <operation>
                    <search position="after"><![CDATA['description'      => $result['description'],]]>
                    </search>
                    <add><![CDATA['short_description'      => $result['short_description'],]]></add>
                  </operation>
                <operation>
                    <search position="replace"><![CDATA[$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']) . "', tag = '" . $this->db->escape($value['tag']) . "'");]]>
                    </search>
                    <add><![CDATA[$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']) . "',short_description = '" . $this->db->escape($value['short_description']) . "', tag = '" . $this->db->escape($value['tag']) . "'");]]></add>
                  </operation>
                 
            </file>
            <file name="admin/view/template/catalog/product_form.tpl">
                <operation>
                    <search position="after"><![CDATA[<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>]]>
                    </search>
                    <add><![CDATA[<tr>
                <td>Краткое описание</td>
                    <td><textarea cols="200" rows="5" name="product_description[<?php echo $language['language_id']; ?>][short_description]" id="short_description<?php echo $language['language_id']; ?>"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['short_description'] : ''; ?></textarea></td>
                  </tr>]]></add>
                  </operation>
            </file>
            <file name="catalog/model/catalog/product.php">
                <operation>
                    <search position="after"><![CDATA['description'      => $query->row['description'],]]>
                    </search>
                    <add><![CDATA['short_description'      => $query->row['short_description'],]]></add>
                  </operation>
            </file>
            <file name="catalog/controller/module/featured.php">
                <operation>
                    <search position="after"><![CDATA['price'        => $price,]]>
                    </search>
                    <add><![CDATA['short_description'    => substr($product_info['short_description'],0,100),]]></add>
                  </operation>
            </file>
           <file name="catalog/controller/module/latest.php">
                <operation>
                    <search position="after"><![CDATA['price'        => $price,]]>
                    </search>
                    <add><![CDATA['short_description'    => substr($result['short_description'],0,100),]]></add>
                  </operation>
            </file>
          
    </modification>
    Если я правильно понял, то допустим вот этот кусок кода
    Код:
    <file name="admin/controller/catalog/product.php">
      <operation>
      <search position="after"><![CDATA[$this->data['entry_description'] = $this->language->get('entry_description');]]>
      </search>
      <add><![CDATA[$this->data['entry_short_description'] = $this->language->get('entry_short_description');]]></add>
      </operation>
      </file>
    
    должен добавить в файл vq2-admin_controller_catalog_product.php строку
    Код:
    $this->data['entry_short_description'] = $this->language->get('entry_short_description');
    после определенной стрки, которая заключена в after?
     
    Последнее редактирование: 28 июл 2015
  2. lexa.22rus

    lexa.22rus Пользователь

    Сообщения:
    68
    Симпатии:
    1
    и еще если я меняю в файле vx_ShortDescription_latest_featured_special.xml вот этот кусок
    Код:
    <file name="admin/language/english/catalog/product.php">
                <operation>
                    <search position="after"><![CDATA[$_['entry_description']      = 'Description:';]]>
                    </search>
                    <add><![CDATA[$_['entry_short_description']      = 'Short Description:';]]></add>
                  </operation>
            </file>
    на этот
    Код:
    <file name="admin/language/russian/catalog/product.php">
                <operation>
                    <search position="after"><![CDATA[$_['entry_description']      = 'Description:';]]>
                    </search>
                    <add><![CDATA[$_['entry_short_description']      = 'Short Description:';]]></add>
                  </operation>
            </file>
    то даже поле для ввода краткого описания пропадает из админки
     
  3. Romans

    Romans Administrator Команда форума

    Сообщения:
    1.438
    Симпатии:
    780
    А вы попробуйте проделать то что хотите заставить сделать вкумод?

    Например найдите Description: в файле admin/language/russian/catalog/product.php
     
  4. lexa.22rus

    lexa.22rus Пользователь

    Сообщения:
    68
    Симпатии:
    1
    Видимо нужно вот так)

    Код:
    <file name="admin/language/russian/catalog/product.php">
                <operation>
                    <search position="after"><![CDATA[$_['entry_description']      = 'Описание:';]]>
                    </search>
                    <add><![CDATA[$_['entry_short_description']      = 'Краткое описание:';]]></add>
                  </operation>
            </file>
     
    Romans нравится это.
  5. lexa.22rus

    lexa.22rus Пользователь

    Сообщения:
    68
    Симпатии:
    1
    Вроде разобрался!)

    Но не со всем)

    Вставляю в xml код:
    Код:
    <file name="catalog/view/theme/default/template/product/product.tpl">
            <operation>
            
              <search position="replace"><![CDATA[
                    <div id="tab-description" class="tab-content"><?php echo $description; ?></div>
                ]]></search>
                    
                <add><![CDATA[
                    <div id="tab-description" class="tab-content">Краткое описание: <?php echo $short_description; ?>
             </div>
                ]]></add>
                    
            </operation>
        </file> 
    получаю:
    [​IMG]

    Почему переменная $short_description пустая?
     
  6. Romans

    Romans Administrator Команда форума

    Сообщения:
    1.438
    Симпатии:
    780
    видимо вы не внесли изменения в /catalog/controller/product/product.php

    Вам нужно данную переменную чем то заполнить. Посмотрите как сделано в вкумоде для модулей.

    Не проверял, но вам нужно как то так
    Код:
            <file name="catalog/controller/product/product.php">
                <operation>
                    <search position="after"><![CDATA['price'        => $price,]]>
                    </search>
                    <add><![CDATA['short_description'    => substr($product_info['short_description'],0,100),]]></add>
                  </operation>
            </file>
    И не забывайте смотреть лог вкумода на наличие ошибок. Там обычно написано.. что не нашел, а что не смог итд
     
  7. lexa.22rus

    lexa.22rus Пользователь

    Сообщения:
    68
    Симпатии:
    1
    Внес. Все равно не получилось.

    в файле catalog/model/catalog/product.php
    Код:
    $query->row['short_description'] 
    получает нужное значение
    а вот дальше
    Код:
    $short_description
    пустая переменная.

    Насчет ошибок, для удобства поставил VQMod Manager. ErrorLog пустой.
     
  8. Romans

    Romans Administrator Команда форума

    Сообщения:
    1.438
    Симпатии:
    780
    а в контроллере как писал выше пример??
     
  9. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    924
    Симпатии:
    240
  10. lexa.22rus

    lexa.22rus Пользователь

    Сообщения:
    68
    Симпатии:
    1
    Дописал, все равно пустая переменная!

    Вот листинг vqmod:
    Код:
    <modification>
        <id>vx_ShortDescription_latest_featured_special</id>
        <version>1.1</version>
        <vqmver>2.4.0</vqmver>
        <author>Vxinfosystem</author>
            <file name="admin/language/russian/catalog/product.php">
                <operation>
                    <search position="after"><![CDATA[$_['entry_description']      = 'Описание:';]]>
                    </search>
                    <add><![CDATA[$_['entry_short_description']      = 'Краткое описание:';]]></add>
                  </operation>
            </file>
           <file name="admin/controller/catalog/product.php">
                <operation>
                    <search position="after"><![CDATA[$this->data['entry_description'] = $this->language->get('entry_description');]]>
                    </search>
                    <add><![CDATA[$this->data['entry_short_description'] = $this->language->get('entry_short_description');]]></add>
                  </operation>
            </file>
            <file name="admin/model/catalog/product.php">
                <operation>
                    <search position="after"><![CDATA['description'      => $result['description'],]]>
                    </search>
                    <add><![CDATA['short_description'      => $result['short_description'],]]></add>
                  </operation>
                <operation>
                    <search position="replace"><![CDATA[$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']) . "', tag = '" . $this->db->escape($value['tag']) . "'");]]>
                    </search>
                    <add><![CDATA[$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']) . "',short_description = '" . $this->db->escape($value['short_description']) . "', tag = '" . $this->db->escape($value['tag']) . "'");]]></add>
                  </operation>
                  
            </file>
            <file name="admin/view/template/catalog/product_form.tpl">
                <operation>
                    <search position="after"><![CDATA[<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>]]>
                    </search>
                    <add><![CDATA[<tr>
                    <td><?php echo $entry_short_description; ?></td>
                    <td><textarea cols="200" rows="5" name="product_description[<?php echo $language['language_id']; ?>][short_description]" id="short_description<?php echo $language['language_id']; ?>"><?php echo isset($product_description[$language['language_id']]) ? $product_description[$language['language_id']]['short_description'] : ''; ?></textarea></td>
                  </tr>]]></add>
                  </operation>
            </file>
            <file name="catalog/model/catalog/product.php">
                <operation>
                    <search position="after"><![CDATA['description'      => $query->row['description'],]]>
                    </search>
                    <add><![CDATA['short_description'      => $query->row['short_description'],]]></add>
                  </operation>
            </file>
            <file name="catalog/controller/module/featured.php">
                <operation>
                    <search position="after"><![CDATA['price'        => $price,]]>
                    </search>
                    <add><![CDATA['short_description'    => substr($product_info['short_description'],0,100),]]></add>
                  </operation>
            </file>
           
           <file name="catalog/controller/module/latest.php">
                <operation>
                    <search position="after"><![CDATA['price'        => $price,]]>
                    </search>
                    <add><![CDATA['short_description'    => substr($result['short_description'],0,100),]]></add>
                  </operation>
            </file>
           
            <file name="catalog/controller/product/product.php">
                <operation>
                    <search position="after"><![CDATA['price'        => $price,]]>
                    </search>
                    <add><![CDATA['short_description'    => $product_info['short_description'],]]></add>
                  </operation>
            </file>
           
            <file name="catalog/view/theme/default/template/product/product.tpl">
            <operation>
            
              <search position="replace"><![CDATA[
                    <div id="tab-description" class="tab-content"><?php echo $description; ?></div>
                ]]></search>
                    
                <add><![CDATA[
                    <div id="tab-description" class="tab-content">Краткое описание:<?php echo $short_description; ?> </div>]]></add>
           </operation>
        </file>
    </modification>
     
  11. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    640
    То что ищите вы проверяйте изначально. Зачем на угад делать то?? Он видимо и не нашел нужную строку. Да и не то ищите

    Вам надо после
    Код:
    $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');
     
    lexa.22rus нравится это.
  12. lexa.22rus

    lexa.22rus Пользователь

    Сообщения:
    68
    Симпатии:
    1
    Заработало! Спасибо!
     
  13. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    640
    @lexa.22rus Не забудьте приложить окончательный вкумод в тему ;) С описанием установки. Вы же теперь гуру по данному вопросу!!
     
  14. lexa.22rus

    lexa.22rus Пользователь

    Сообщения:
    68
    Симпатии:
    1
    Хорошо) Вечером сделаю))
     
  15. lexa.22rus

    lexa.22rus Пользователь

    Сообщения:
    68
    Симпатии:
    1
    Шаги установки:

    1. Установить vQmode
    2. Распаковать архив
    3. Скопировать содержимое папки upload в корневую директорию магазина
    4. Скопировать данную строку
    <div class="short_description"><?php echo $product['short_description'];?></div>
    5. Вставить скопированную строку в файлы
    i.catalog/view/theme/your theme name/template/module/featured.tpl
    ii.catalog/view/theme/your theme name/template/module/latest.tpl
    iii.catalog/view/theme/your theme name/template/module/special.tpl

    6. Выполнить sql запрос
    ALTER TABLE oc_product_description ADD `short_description` VARCHAR( 255 ) NOT NULL AFTER `description`
     

    Вложения:

  16. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    Что то не доделали вкумод ((
    4-й и 5-й пункт можно было внести в вкумод.

    И непонятна запись в вкумоде
    Код:
    <search position="after"><![CDATA[<!-- short_description -->]]></search>
    Это вы наверно для себя, при тестировании делали. ))
     
  17. lexa.22rus

    lexa.22rus Пользователь

    Сообщения:
    68
    Симпатии:
    1
    Точно...забыл про это!)) С копма зайду, изменю))

    Насчет 4 и 5 пункта, а вдруг имя темы изменено. Если можно узнать имя активной темы, напишите как.
     
  18. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    обычно пишут что в вкумоде изменить default на свое
     
  19. lexa.22rus

    lexa.22rus Пользователь

    Сообщения:
    68
    Симпатии:
    1
    Я только начал изучать opencart и еще не в курсе, как принято. Теперь буду знать.
     
  20. Andrey_msk

    Andrey_msk Пользователь

    Сообщения:
    31
    Симпатии:
    6
    А этот "ShortDescription" будет работать на opencart 2.0.xx?