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

В админке поменять поле textarea в image в общем пункте опций OcStore 3


Recommended Posts

Есть бесплатный модуль (с opencart.com) добавляющий описание к общему пункту опций (во вложении).

Модуль рабочий, все записывается в базу куда надо.

Необходимо переделать поле с описанием - в поле выбора картинки в админке. Т.е. должно быть как на скрине.

Картинка должна записываться в столбец image в таблице option_description.

Подозреваю что реализуется просто, но понимания пока не хватает.

Кто готов помочь, напишите, обсудим стоимость работы.

 

Суть проблемы описал тут: 

 

Снимок.JPG

optiondescription3x.ocmod.zip

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


1 час назад, Absens сказал:

Есть бесплатный модуль (с opencart.com) добавляющий описание к общему пункту опций (во вложении).

Модуль рабочий, все записывается в базу куда надо.

Необходимо переделать поле с описанием - в поле выбора картинки в админке. Т.е. должно быть как на скрине.

Картинка должна записываться в столбец image в таблице option_description.

Подозреваю что реализуется просто, но понимания пока не хватает.

Кто готов помочь, напишите, обсудим стоимость работы.

 

Суть проблемы описал тут: 

 

Снимок.JPG

optiondescription3x.ocmod.zip 1 \u043a\u0411 · 0 downloads

посмотрите ка реализовано например в категории. и сделайте по аналогии

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


4 минуты назад, Dimasscus сказал:

посмотрите ка реализовано например в категории. и сделайте по аналогии

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

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


1 час назад, Absens сказал:

Картинка должна записываться в столбец image в таблице option_description.

не правильно

нужно записывать в таблицу option

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

Почему неправильно?

Просто в модуле записывается в option_description, да и описание опции от другого модуля тоже туда записывается. Мне кажется некритично.

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


22 минуты назад, Absens сказал:

Почему неправильно?

потому что в option_description,    будет столько записей для одной опции, сколько языков на сайте

и нафига изображение записывать несколько раз?

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

25 минут назад, Absens сказал:

да и описание опции от другого модуля тоже туда записывается.

описание да, потому что описание для каждого языка свое

 

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

1 час назад, fanatic сказал:

получилось?

Получилось, в базу запись идет) когда понял что надо записать в таблицу option все стало гораздо яснее)

Правда пока не получается подтянуть thumb картинки после сохранения опции, хотя вроде все правильно делаю.

<modification>
	<name>Options image</name>
	<version>1.0</version>
	<code>options_image_extension</code>
	<author>test</author>
	<link>test</link>
	<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>
	<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` LIKE 'image'");
					if(!$query->num_rows){
						$this->db->query("ALTER TABLE `" . DB_PREFIX . "option` ADD `image` varchar(255) NOT NULL AFTER `type`");
					}
			}
			]]></add>
		</operation>
		<operation>
			<search><![CDATA[sort_order = '" . (int)$data['sort_order'] . "']]></search>
			<add position="replace"><![CDATA[sort_order = '" . (int)$data['sort_order'] . "',image = '" . $this->db->escape($data['image']) . "']]></add>
		</operation>
	</file>
	<file path="admin/controller/catalog/option.php">
	<operation>
	<search><![CDATA[protected function getForm() {]]></search>
		<add position="after"><![CDATA[
		if (isset($this->request->post['image'])) {
				$data['image'] = $this->request->post['image'];
			  } elseif (!empty($option_info)) {
				$data['image'] = $option_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($option_info) && is_file(DIR_IMAGE . $option_info['image'])) {
				$data['thumb'] = $this->model_tool_image->resize($option_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);
		  ]]></add>
	</operation>
	</file>
</modification>

 

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


7 минут назад, Absens сказал:

<search><![CDATA[protected function getForm() {]]></search> <add position="after"><![CDATA[

<search><![CDATA[if (isset($this->request->post['sort_order'])) {]]></search>
<add position="before"><![CDATA[

 

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

вставлять нужно после того как объявлена переменная  $option_info

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

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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

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