Opencart 3.在oc_ product_image中添加新字段

时间:2019-07-01 11:32:00

标签: php twig opencart

我是新手,想自己弄清楚,但是现在我已经走到了尽头。

需要在“图片”标签中为其他产品图片添加说明字段。

我做了什么。在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']
     );

在admin \ 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_descriptionlanguage_id(添加到PRIMARY和属性为“主要”的语言的ID-我使用OpenServer)。

保存更改后,我更新了选项卡中的修饰符。

我没有移至字段输出的一部分,因为更新产品卡时出错:

  

通知:未定义索引:第250行上的** \ system \ storage \ modification \ admin \ model \ catalog \ product.php中的img_description通知:未定义索引:** \ system \ storage \ modification \ admin \ model \中的img_description第250行上的catalog \ product.php警告:无法修改标头信息-在线上** \ system \ library \ response.php中已经发送过的标头(输出从** \ admin \ controller \ startup \ error.php:34开始) 36

我检查了此文件,在指定的位置(第250行)没有任何内容,并且在与product_image相关的位置中,如上所述进行了相应的更改。

请人帮忙解决问题。

0 个答案:

没有答案