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

Absens

Новачок
  
  • Публікації

    8
  • З нами

  • Відвідування

Усі публікації користувача Absens

  1. Думаю достаточно и будет и того, чтобы в шаблоне товара поменять пункт опций "input" на например "div" для chekbox. ( тут: \catalog\view\theme\название темы\template\product\product.twig) Правда таком случае у всех чекбоксов не будет возможности выбора, т.е. не только у этой опции. Если нужно чтобы только у одной опции с типом "флажок" не было возможности выбора, потребуется отдельно для нее прописать вывод в шаблоне (пример скорее всего на форуме есть), либо через javascript найти эту опцию и убрать возможность выбора.
  2. Получилось, в базу запись идет) когда понял что надо записать в таблицу 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>
  3. понял) язык один на сайте, поэтому языковое многообразие не учитывал. Хотя вряд ли конечно когда-нибудь будет дополнительный язык
  4. Почему неправильно? Просто в модуле записывается в option_description, да и описание опции от другого модуля тоже туда записывается. Мне кажется некритично.
  5. да, я пробовал, но не знаю как сделать так, чтобы путь до выбранной картинки сохранился в базе. С текстовыми полями все более-менее ясно, но похоже что для картинок надо дописать что-то в модели или контроллере.
  6. Есть бесплатный модуль (с opencart.com) добавляющий описание к общему пункту опций (во вложении). Модуль рабочий, все записывается в базу куда надо. Необходимо переделать поле с описанием - в поле выбора картинки в админке. Т.е. должно быть как на скрине. Картинка должна записываться в столбец image в таблице option_description. Подозреваю что реализуется просто, но понимания пока не хватает. Кто готов помочь, напишите, обсудим стоимость работы. Суть проблемы описал тут: optiondescription3x.ocmod.zip
  7. Добрый день! Пробую сделать так, чтобы и у общего пункта опций была возможность добавить картинку (суть на скрине ниже). В некоторых случаях бывает полезно, если товары сложные. Нашел для этой цели бесплатный плагин, который добавляет описание к опции (во вложении). При переделке в модуле текстовой формы в форму загрузки картинки, возникла проблема. Картинка не сохраняется в базе. Подозреваю что проблема в 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); С текстовыми полями все понятно, но с полем картинки пока не ясно) Пробовал делать по аналогии полей с картинками в категории и продукте, но похоже что-то упускаю. optiondescription3x.ocmod.zip
×
×
  • Створити...

Important Information

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