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

Добавление картинки общему пункту опций Ocstore 3


Recommended Posts

Добрый день! Пробую сделать так, чтобы и у общего пункта опций была возможность добавить картинку (суть на скрине ниже). В некоторых случаях бывает полезно, если товары сложные.

Нашел для этой цели бесплатный плагин, который добавляет описание к опции (во вложении).

При переделке в модуле текстовой формы в форму загрузки картинки, возникла проблема. Картинка не сохраняется в базе. Подозреваю что проблема в model или в controller.

Делаю так:

Model в admin

	<file path="admin/model/catalog/option.php">
		<operation>
			<search><![CDATA[public function getTotalOptions() {]]></search>
			<add position="after"><![CDATA[$this->createtable();]]></add>
		</operation>
		<operation>
			<search><![CDATA[public function getTotalOptions() {]]></search>
			<add position="before"><![CDATA[
				public function createtable(){
					$this->db->query("CREATE TABLE IF NOT EXISTS `" . DB_PREFIX ."product_option_value_data` (`product_option_value_data_id` int(11) NOT NULL AUTO_INCREMENT, `product_option_value_id` INT(11) NOT NULL,`product_id` INT(11) NOT NULL, `image` varchar(255) NOT NULL,`model` varchar(255) NOT NULL,`sku` varchar(255) NOT NULL, PRIMARY KEY(`product_option_value_data_id`))");
		
					$query = $this->db->query("SHOW COLUMNS FROM `" . DB_PREFIX . "option_description` LIKE 'image'");
					if(!$query->num_rows){
						$this->db->query("ALTER TABLE `" . DB_PREFIX . "option_description` ADD `image` varchar(255) NOT NULL AFTER `name`");
					}
				}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[name = '" . $this->db->escape($value['name']) . "']]></search>
			<add position="replace"><![CDATA[name = '" . $this->db->escape($value['name']) . "',image = '" . $this->db->escape($value['image']) . "']]></add>
		</operation>
		<operation>
			<search><![CDATA['name' => $result['name']]]></search>
			<add position="replace"><![CDATA['name' => $result['name'],'image' => $result['image']]]></add>
		</operation>
</file>

View в admin

	<file path="admin/view/template/catalog/option_form.twig">
		<operation>
			<search><![CDATA[<label class="col-sm-2 control-label" for="input-sort-order">]]></search>
			<add position="before" offset="1"><![CDATA[
				 <div class="form-group">
                <label class="col-sm-2 control-label" for="input-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>
				]]></add>
		</operation>
	</file>

И в controller в admin подозреваю надо добавить это

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);

 

С текстовыми полями все понятно, но с полем картинки пока не ясно) Пробовал делать по аналогии полей с картинками в категории и продукте, но похоже что-то упускаю. 

Снимок.JPG

optiondescription3x.ocmod.zip

Змінено користувачем Absens
Надіслати
Поділитися на інших сайтах


14 часов назад, Absens сказал:

!empty($module_info))

при чем $module_info?

нужно $option_info

и изображение хранить в  таблице option

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

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

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

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

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

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

Вхід

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

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

Important Information

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