如何在OpenCart 3模块管理面板中显示来自媒体库的图像选择字段

时间:2020-08-09 05:22:00

标签: php html opencart opencart-3 opencart-module

如何在OpenCart 3模块管理面板中显示来自媒体库的图像选择字段?像普通的文本框一样尝试了它,但是它不起作用。

1 个答案:

答案 0 :(得分:1)

例如,有些人说我们需要在Module Featured中添加图像。

转到 /admin/view/template/extension/module/featured.php

public function index() { ... }内的几乎任何位置(可能在$this->load->model('setting/module');之后和$this->response->setOutput($this->load->view('extension/module/featured', $data));之前)添加以下内容。

我已经在if (isset($this->request->post['top'])) {

之前添加了它
if (isset($this->request->post['image'])) {
  $data['image'] = $this->request->post['image'];
} elseif (!empty($module_info)) {
  $data['image'] = $module_info['image'];
} else {
  $data['image'] = '';
}

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

if (isset($this->request->post['image']) && is_file(DIR_IMAGE . $this->request->post['image'])) {
  $data['thumb'] = $this->model_tool_image->resize($this->request->post['image'], 100, 100);
} elseif (!empty($module_info) && is_file(DIR_IMAGE . $module_info['image'])) {
  $data['thumb'] = $this->model_tool_image->resize($module_info['image'], 100, 100);
} else {
  $data['thumb'] = $this->model_tool_image->resize('no_image.png', 100, 100);
}

$data['placeholder'] = $this->model_tool_image->resize('no_image.png', 100, 100);

然后,在 /admin/view/template/extension/module/featured.twig 查找

<div class="form-group">
  <label class="col-sm-2 control-label" for="input-name">{{ entry_name }}</label>
  <div class="col-sm-10">
    <input type="text" name="name" value="{{ name }}" placeholder="{{ entry_name }}" id="input-name" class="form-control" />
    {% if error_name %}
    <div class="text-danger">{{ error_name }}</div>
    {% endif %}
  </div>
</div> 

然后添加

<div class="form-group">
  <label class="col-sm-2 control-label">{{ entry_image }}</label>
  <div class="col-sm-10"><a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="{{ thumb }}" alt="" title="" data-placeholder="{{ placeholder }}" /></a>
    <input type="hidden" name="image" value="{{ image }}" id="input-image" />
  </div>
</div>

现在应该可以了。