简体   繁体   中英

Adding custom image field in data tab of Opencart

I want to add a custom image field to upload a image in data tab of opencart. The image is displayed but after click on save button the image disappears and the image not saved in mysql database also. So please help me. I changed the existing code as follows to upload an image:

In controller/catalog/product.php

if (isset($this->request->post['backgroundimage'])) {
        $this->data['backgroundimage'] = $this->request->post['backgroundimage'];
    } elseif (!empty($product_info)) {
        $this->data['backgroundimage'] = $product_info['backgroundimage'];
    } else {
        $this->data['backgroundimage'] = '';
    }


    $this->load->model('tool/image');

    if (isset($this->request->post['backgroundimage']) && file_exists(DIR_IMAGE . $this->request->post['backgroundimage'])) {
        $this->data['thumb'] = $this->model_tool_image->resize($this->request->post['backgroundimage'], 100, 100);
    } elseif (!empty($product_info) && $product_info['backgroundimage'] && file_exists(DIR_IMAGE . $product_info['backgroundimage'])) {
        $this->data['thumb'] = $this->model_tool_image->resize($product_info['backgroundimage'], 100, 100);
    } else {
        $this->data['thumb'] = $this->model_tool_image->resize('no_image.jpg', 100, 100);
    }

In view/template/catalog/product_form.tpl

<tr>
              <td><?php echo $entry_backgroundimage; ?></td>
              <td><div class="image"><img src="<?php echo $thumb2; ?>" alt="" id="thumb2" /><br />
                  <input type="hidden" name="image2" value="<?php echo $backgroundimage; ?>" id="image2" />
                  <a onclick="image_upload('image2', 'thumb2');"><?php echo $text_browse; ?></a>&nbsp;&nbsp;|&nbsp;&nbsp;<a onclick="$('#thumb2').attr('src', '<?php echo $no_image; ?>'); $('#image2').attr('value', '');"><?php echo $text_clear; ?></a></div></td>
            </tr>

In model/catalog/product.php

$this->db->query("INSERT INTO " . DB_PREFIX . "product SET backgroundimage = '" . $this->db->escape($data['image2']) . "',product_id = '" . (int)$product_id . "'");

代替$this->db->escape($data['image2'])使用此$this->db->escape(html_entity_decode($data['image2'], ENT_QUOTES, 'UTF-8'))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM