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

Absens

Newbie
  
  • Posts

    8
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Absens's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter

Recent Badges

1

Reputation

  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
Guest
×
  • 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.