Добавления поля в админку.

Тема в разделе "Дизайн, оформление и шаблоны", создана пользователем spider98, 20 апр 2022.

  1. spider98

    spider98 Новичок

    Сообщения:
    4
    Симпатии:
    0
    Есть у товара поле «Теги товара», которые хранится в таблице oc_product_description БД в виде поля «tag», и «приезжает» в шаблон product.tpl в виде переменной $tags[0]['tag'].

    Требуется (не спрашивайте зачем) создать для товара в админке еще одно такое же поле, где будет храниться сходная информация, и которое должно «приезжать» в тот же шаблон product.tpl в виде отдельной переменной.

    Если кто хорошо «копал» движок, где соответствующие куски кода искать? Движок OpenCart 2.3.0.2. Заранее спасибо.
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.883
    Симпатии:
    1.065
    Поля по типу ISBN итд не подходят? Информации много тут на форуме, как вывести итд
     
  3. SiteMix

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

    Сообщения:
    1.021
    Симпатии:
    174
    Чаще всего в качестве дополнительных используются неиспользуемые поля типа MPN, UPC и т.п. Остаётся только вывести их на страницу товара. На форуме есть инструкции. А в некоторых шаблонах их можно вывести и из настроек шаблона.
     
  4. spider98

    spider98 Новичок

    Сообщения:
    4
    Симпатии:
    0
    Да, можно и готовые пустые поля юзать, весь вопрос, где обработчик, который их из базы достает. Вы б ссылку кинули, если "На форуме есть инструкции". Заранее спасибо.
     
  5. spider98

    spider98 Новичок

    Сообщения:
    4
    Симпатии:
    0
    Да, можно и готовое пустое поле использовать, весь вопрос, где обработчик, который из базы в шаблон достает. Если можно, скиньте ссылку на "информации много тут на форуме", банально в лом весь движок "разбирать" из за одного доп. значения. Заранее спасибо.
     
  6. Shureg

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

    Сообщения:
    71
    Симпатии:
    16
    Вы удивитесь, но обычно "обработчик" лежит в директории controller с тем же путем, что и вьювер, и имеет такое же имя. То есть, для ...../product/product.tpl это будет controller/product/product.php
     
  7. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    Банально лень искать по форуму. Вот что первое нашел
    https://forum.opencart-russia.ru/th...u-upc-v-kartochke-tovara-ili-esche-gde-to.36/
    https://forum.opencart-russia.ru/threads/vyvesti-sku-v-kataloge-oc-3-0.9253/#post-67570

    Но ведь есть еще и документация и инструкции всякие. Все же придется изучить принципы, чтобы хоть как то ориентироваться в движке.
     
  8. spider98

    spider98 Новичок

    Сообщения:
    4
    Симпатии:
    0
    Принципы построения движков знаю, было реально просто лень искать по форуму. За ссылки спасибо.
     
  9. Pie

    Pie Активный пользователь

    Сообщения:
    121
    Симпатии:
    28
    Код:
    <file path="admin/model/catalog/product.php">
        <operation>
            <search><![CDATA[
                tag = '" . $this->db->escape($value['tag']) . "',
            ]]></search>
            <add position="replace"><![CDATA[
                tag = '" . $this->db->escape($value['tag']) . "', tag1 = '" . $this->db->escape($value['tag1']) . "',
            ]]></add>
        </operation>
        <operation>
            <search><![CDATA[
                'tag'              => $result['tag']
            ]]></search>
            <add position="replace"><![CDATA[
                'tag'              => $result['tag'],
                'tag1'              => $result['tag1']
            ]]></add>
        </operation>
    </file>
    
    <file path="admin/view/template/catalog/product_form.twig">
        <operation>
            <search><![CDATA[
                <input type="text" name="product_description[{{ language.language_id }}][tag]" value="{{ product_description[language.language_id] ? product_description[language.language_id].tag }}" placeholder="{{ entry_tag }}" id="input-tag{{ language.language_id }}" class="form-control"/>
            ]]></search>
            <add position="after" offset="2"><![CDATA[
                 <div class="form-group">
                    <label class="col-sm-2 control-label" for="input-tag1{{ language.language_id }}"><span data-toggle="tooltip" title="{{ help_tag }}">{{ entry_tag }}</span></label>
                    <div class="col-sm-10">
                        <input type="text" name="product_description[{{ language.language_id }}][tag1]" value="{{ product_description[language.language_id] ? product_description[language.language_id].tag1 }}" placeholder="{{ entry_tag }}" id="input-tag1{{ language.language_id }}" class="form-control"/>
                    </div>
                </div>
            ]]></add>
        </operation>
    </file>
    Вы бы с задачей определились. MPN и тд это обычные поля, tag, мультиязычное.
     
    Последнее редактирование: 22 апр 2022