Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


Recommended Posts

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

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

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

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

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

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

 

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

 

Снимок.JPG

optiondescription3x.ocmod.zip

Edited by Absens
Link to comment
Share on other sites


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

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

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

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

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

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

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

 

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

 

Снимок.JPG

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

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

Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites


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

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

не правильно

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

  • +1 1
Link to comment
Share on other sites

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

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

Link to comment
Share on other sites


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

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

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

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

Link to comment
Share on other sites

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

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

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

 

Link to comment
Share on other sites

понял) язык один на сайте, поэтому языковое многообразие не учитывал. Хотя вряд ли конечно когда-нибудь будет дополнительный язык

Link to comment
Share on other sites


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>

 

Link to comment
Share on other sites


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[

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.