Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

Здравствуйте решил добавить к фильтру возможность присваивать каждому элементу фильтра, изображение.

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, но адрес не сохраняется в созданной мной колонке таблицы ну и соответственно не выводиться в админке, что я делаю не так? подскажите, очень хочется разобраться, информации очень мало на эту тему, заранее большое спасибо!

127.0.0.1  127.0.0.1  opencart  oc_filter  phpMyAdmin 4.7.3 - Google Chrome.jpg

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.