Здравствуйте решил добавить к фильтру возможность присваивать каждому элементу фильтра, изображение.
ocStore-2.3.0.2.2 тема дефолтная, фильтр штатный
В таблице бд добавил колонку image. скриншот прилагаю.
Правил -admin/model/catalog/filter в теле функции addFilter добавил: if (isset($data['image'])}{ ....
<?php
class ModelCatalogFilter extends Model {
public function addFilter($data) {
$this->db->query("INSERT INTO `" . DB_PREFIX . "filter_group` SET sort_order = '" . (int)$data['sort_order'] . "'");
$filter_group_id = $this->db->getLastId();
foreach ($data['filter_group_description'] as $language_id => $value) {
$this->db->query("INSERT INTO " . DB_PREFIX . "filter_group_description SET filter_group_id = '" . (int)$filter_group_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "'");
}
if (isset($data['filter'])) {
foreach ($data['filter'] as $filter) {
$this->db->query("INSERT INTO " . DB_PREFIX . "filter SET filter_group_id = '" . (int)$filter_group_id . "', sort_order = '" . (int)$filter['sort_order'] . "', image = '" . (int)$filter['sort_order']. "'");
$filter_id = $this->db->getLastId();
if (isset($data['image'])) {
$this->db->query("UPDATE" . DB_PREFIX . "filter SET image = '" . $this->db->escape($data['image']) . "' WHERE filter_id = '" . (int)$filter_id . "'");
}
foreach ($filter['filter_description'] as $language_id => $filter_description) {
$this->db->query("INSERT INTO " . DB_PREFIX . "filter_description SET filter_id = '" . (int)$filter_id . "', language_id = '" . (int)$language_id . "', filter_group_id = '" . (int)$filter_group_id . "', name = '" . $this->db->escape($filter_description['name']) . "'");
}
}
}
return $filter_group_id;
}
в admin/controller/catalog/filter, в теле функции getForm:
if (isset($this->request->get['filter_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) {
$filter_info = $this->model_catalog_filter->getFilter($this->request->get['filter_id']);
}
if (isset($this->request->post['image'])) {
$data['image'] = $this->request->post['image'];
} elseif (!empty($filter_info)) {
$data['image'] = $filter_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($filter_info) && is_file(DIR_IMAGE . $filter_info['image'])) {
$data['thumb'] = $this->model_tool_image->resize($filter_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);
в шаблоне:
<a href="" id="thumb-image" data-toggle="image" class="img-thumbnail">
<img src="<?php echo $thumb; ?>" alt="img" title="" data-placeholder="<?php echo $placeholder; ?>" />
</a>
<input type="hidden" name="image" value="<?php echo $image; ?>" id="input-image" />
В итоге изображение загружается в каталог image, но адрес не сохраняется в созданной мной колонке таблицы ну и соответственно не выводиться в админке, что я делаю не так? подскажите, очень хочется разобраться, информации очень мало на эту тему, заранее большое спасибо!