Opencart 3. Добавить новое поле в oc_ product_image - PullRequest
0 голосов
/ 01 июля 2019

Я новичок и пытаюсь сам разобраться, но теперь я в тупике.

Необходимо добавить поле описания для дополнительных изображений товара на вкладке "изображение".

Что я сделал.В строке admin \ model \ catalog \ product.php 76 и 222 вставьте:

if (isset($data['product_image'])) {
        foreach ($data['product_image'] as $product_image) {

                $this->db->query("INSERT INTO " . DB_PREFIX . "product_image SET product_id = '" . (int)$product_id . "', image = '" . $this->db->escape($product_image['image']) . "', sort_order = '" . (int)$product_image['sort_order'] . "', language_id = '" . (int)$language_id . "', img_description = '" .  $this->db->escape($product_image['img_description']) . "'");

        }
    }

В строке admin \ controller \ catalog \ product.php 1079 вставьте:

$data['product_images'][] = array(
        'image' => $image,
        'thumb' => $this->model_tool_image->resize($thumb, 100, 100),
        'sort_order' => $product_image['sort_order'],
        'img_description' => $product_image['img_description']
     );

В админке\ view \ template \ catalog \ product_form.twig вставил поля с привязками языка (на сайте два языка)

<td class="text-right">{% for language in languages %}
                  <div class="input-group"><span class="input-group-addon"><img src="language/{{ language.code }}/{{ language.code }}.png" title="{{ language.name }}" /></span>
                    <textarea name="product_image[{{ image_row }}][{{ language.language_id }}][img_description]" rows="5" placeholder="{{ entry_img_description }}" class="form-control">{{ product_image[language.language_id] ? product_image[language.language_id].img_description }}</textarea>
                  </div>
                  {% endfor %}
                </td>

В базе данных в таблице oc_product_image я добавил поля img_description и language_id (идентификатор языка, добавленного в PRIMARY, и атрибут «основной» - я использую OpenServer).

После сохранения изменений я обновил модификаторы на вкладке.

Я не сделалперейти к части выходного поля, поскольку при обновлении карты продукта возникли ошибки:

Примечание: неопределенный индекс: img_description в ** \ system \ storage \ification \ admin \ model \ catalog \ product.php в строке 250 Примечание: неопределенный индекс: img_description в ** \ system \ storage \ modify \ admin \ model \ catalog \ product.php в строке 250 Предупреждение: невозможно изменить информацию заголовка - заголовки уже отправлены (вывод начался в ** \ admin \ controller \ startup \ error.php: 34) в ** \ system \ library \ response.php в строке 36

Я проверил этот файл, в указанном месте (строка 250) естьничего, и в местах, связанных с product_image, соответствующие изменения сделаны, как описано выше.

Добрые люди, помогите решить проблему, пожалуйста.

...