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

Recommended Posts

Подсказка для атрибутов, групп атрибутов, опций и их значений - ocmod_2.x


Подсказка для атрибутов, групп атрибутов, опций и их значений - ocmod_2.x


Всплывающая подсказка для атрибутов, групп атрибутов, опций и их значений

Модуль выполнен для стандартного шаблона. Ввиду того, что я не могу учесть всех нюансов кастомных шаблонов, работу модуля на них я не гарантирую.

 

Модуль распространяется как есть. Все доработки, и адаптация - платно.

 

Функционал:

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

 

option_description.jpg

Описание выводится в карточке товара (вкладка характеристики), и на странице сравнения товаров.

Установка стандартная для ocmod:

Панель управления - Установка дополнений

 

11.gif

  • Добавил
  • Добавлено
    03.02.2016
  • Категория
  • Системные требования
  • Метод активации
    Без активации
  • Ioncube Loader
    Нет
  • ocStore
    2.3
    2.1
  • OpenCart.Pro, ocShop
  • Обращение к серверу разработчика

 

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

Возможно.

Пока нет свободного времени.

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

  • 4 weeks later...

Всплывающая подсказка реализована через javascript, встроенный в bootstrap.

Можно сделать по клику.

Для этого должен быть подключен bootstrap.js в /catalog/view/theme/default/template/common/header.tpl (не bootstrap.min.js), так проще.

В этом файле (bootstrap.js), в разделе Bootstrap: tooltip.js v3.3.5 нужно поменять значение в строке:

    trigger: 'hover focus',

на:

    trigger: 'click',
Надіслати
Поділитися на інших сайтах

  • 3 weeks later...

На сколько я понял модуль создает в БД колонку для описания (ее размер 512 символов), по этому обрезаются длинные подсказки... Я прав?

 

 

Сделайте колонку longtext пожалуйста, как обновление модуля.

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


  • 3 weeks later...

Я, конечно, согласен, что 512 символов это мало, учитывая, что все языки пишутся одной записью, но longtext это слишком много для всплывающей подсказки. Не вижу проблем самостоятельно указать тип данных, или конкретный размер в базе.

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

  • 4 weeks later...

Добавил описание для опций и их значений. Само описание вводится на странице опций, в админке: каталог - опции.

11.gif

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

  • 2 months later...
  • 4 weeks later...

Установил модуль и мне выдало на странице товара во такую ошибку

Notice: Error: Unknown column 'description_attribute_group' in 'field list'
Error No: 1054
SELECT ag.attribute_group_id, agd.name, description_attribute_group FROM oc_product_attribute pa LEFT JOIN oc_attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN oc_attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN oc_attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '50' AND agd.language_id = '2' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name in W:\home\opencart_2102.loc\www\system\library\db\mysqli.php on line 41Notice: Trying to get property of non-object in W:\home\opencart_2102.loc\www\system\storage\modification\catalog\model\catalog\product.php on line 302Warning: Invalid argument supplied for foreach() in W:\home\opencart_2102.loc\www\system\storage\modification\catalog\model\catalog\product.php on line 302

Прочитал описание и увидел это:

 

Для правильной работы модуля, после его установки обязательно зайти в:
Каталог - Атрибуты - Атрибуты
Каталог - Атрибуты - Группы атрибутов
Каталог - Опции - Редактирование опции (любой)

 

 

Сделал и все заработало) Спасибо!

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


  • 1 month later...

Добавлена возможность задавать подсказки для значений атрибутов.

 

post-689859-0-36851000-1474295644_thumb.jpg

 

 

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

Выложил вторую версию модуля.

Объединил с модулем "опция по умолчанию", плюс добавил возможность задать подсказку для значения опции на странице редактирования товара. Если подсказка указана и на странице редактирования опций, и на странице редактирования товара, то выводиться будет подсказка со страницы товара, т.е. уникальная для данного товара.

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

автор в чем может быть затык? сперва установил эту версию all_description_oc2.x.ocmod.xml поехала вся верстка на сайте, снёс. поставил эту all_description_v2_oc2.x.ocmod.xml с вёрсткой всё норм, по атрибутам, группах и опциях походил, результат 0. шаблон не дефолтный, но это без разницы т.к. переключаюсь на дефолт в админке. В логах пусто. Версия 2.0.1.1 до этого долго сидел на 1.5 поэтому тяжело с второй версией разобраться, так может и без вопросов бы обошлось.

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

нет соврал, извините. вот логи

MOD: Всплывающая подсказка (атрибуты и опции)
FILE: admin/model/catalog/attribute_group.php
CODE: public function getAttributeGroups($data = array()) {
LINE: 47
CODE: name = '" . $this->db->escape($value['name']) . "'
LINE: 10
LINE: 26
CODE: $attribute_group_data[$result['language_id']] = array('name' => $result['name']);
LINE: 94
FILE: admin/model/catalog/attribute.php
CODE: public function getAttributes($data = array()) {
LINE: 47
CODE: name = '" . $this->db->escape($value['name']) . "'");
LINE: 10
LINE: 26
CODE: $attribute_data[$result['language_id']] = array('name' => $result['name']);
LINE: 105
FILE: admin/model/catalog/product.php
CODE: text = '" .  $this->db->escape($product_attribute_description['text']) . "'");
LINE: 29
LINE: 158
CODE: $product_attribute_description_data[$product_attribute_description['language_id']] = array('text' => $product_attribute_description['text']);
LINE: 472
CODE: public function getProducts($data = array()) {
LINE: 349
CODE: (float)$product_option_value['weight'] . "',
LINE: 45
LINE: 178
CODE: $product_option_value['weight'],
LINE: 510
FILE: admin/language/de-DE/catalog/attribute.php
CODE: <?php
LINE: 0
FILE: admin/language/english/catalog/attribute.php
CODE: <?php
LINE: 0
FILE: admin/language/russian/catalog/attribute.php
CODE: <?php
LINE: 0
FILE: admin/language/de-DE/catalog/attribute_group.php
CODE: <?php
LINE: 0
FILE: admin/language/english/catalog/attribute_group.php
CODE: <?php
LINE: 0
FILE: admin/language/russian/catalog/attribute_group.php
CODE: <?php
LINE: 0
FILE: admin/language/de-DE/catalog/product.php
CODE: <?php
LINE: 0
FILE: admin/language/english/catalog/product.php
CODE: <?php
LINE: 0
FILE: admin/language/russian/catalog/product.php
CODE: <?php
LINE: 0
FILE: admin/view/template/catalog/attribute_list.tpl
CODE: <td class="text-left"><?php if ($sort == 'attribute_group') { ?>
LINE: 43
CODE: <td class="text-left"><?php echo $attribute['attribute_group']; ?></td>
LINE: 67
FILE: admin/view/template/catalog/attribute_group_form.tpl
CODE: <div class="form-group">
LINE: 52
FILE: admin/view/template/catalog/attribute_group_list.tpl
CODE: <td class="text-right"><?php if ($sort == 'ag.sort_order') { ?>
LINE: 43
CODE: <td class="text-right"><?php echo $attribute_group['sort_order']; ?></td>
LINE: 62
FILE: admin/view/template/catalog/attribute_form.tpl
CODE: <label class="col-sm-2 control-label" for="input-attribute-group"><?php echo $entry_attribute_group; ?></label>
LINE: 54
FILE: admin/view/template/catalog/product_form.tpl
CODE: <td class="text-left"><?php echo $entry_text; ?></td>
LINE: 427
CODE: <td colspan="2"></td>
LINE: 452
LINE: 703
LINE: 839
CODE: <td class="text-left"><button type="button" onclick="$('#attribute-row<?php echo $attribute_row; ?>').remove();" data-toggle="tooltip" title="<?php echo $button_remove; ?>" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></td>
LINE: 452
CODE: html += '<div class="input-group"><span class="input-group-addon"><img src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" /></span><textarea name="product_attribute[' + attribute_row + '][product_attribute_description][<?php echo $language['language_id']; ?>][text]" rows="5" placeholder="<?php echo $entry_text; ?>" class="form-control"></textarea></div>';
LINE: 1089
CODE: <td class="text-right"><?php echo $entry_quantity; ?></td>
LINE: 572
CODE: <td class="text-right"><input type="text" name="product_option[<?php echo $option_row; ?>][product_option_value][<?php echo $option_value_row; ?>][quantity]" value="<?php echo $product_option_value['quantity']; ?>" placeholder="<?php echo $entry_quantity; ?>" class="form-control" /></td>
LINE: 599
CODE: <td class="text-right"><?php echo $entry_quantity; ?></td>';
LINE: 1237
CODE: <td colspan="6">
LINE: 667
LINE: 1250
CODE: html += '  <td class="text-right"><input type="text" name="product_option[' + option_row + '][product_option_value][' + option_value_row + '][quantity]" value="" placeholder="<?php echo $entry_quantity; ?>" class="form-control" /></td>';
LINE: 1298
FILE: admin/controller/catalog/attribute.php
CODE: 'attribute_group' => $result['attribute_group'],
LINE: 177
CODE: $data['column_attribute_group'] = $this->language->get('column_attribute_group');
LINE: 191
CODE: $data['entry_attribute_group'] = $this->language->get('entry_attribute_group');
LINE: 272
FILE: admin/controller/catalog/product.php
CODE: $data['entry_attribute'] = $this->language->get('entry_attribute');
LINE: 578
CODE: $data['entry_option_value'] = $this->language->get('entry_option_value');
LINE: 584
CODE: $product_option_value['points_prefix'],
LINE: 1133
FILE: admin/controller/catalog/attribute_group.php
CODE: 'sort_order'         => $result['sort_order'],
LINE: 177
CODE: $data['column_sort_order'] = $this->language->get('column_sort_order');
LINE: 190
CODE: $data['entry_sort_order'] = $this->language->get('entry_sort_order');
LINE: 269
FILE: catalog/model/catalog/product.php
CODE: $product_attribute_group_query = $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id . "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name");
LINE: 297
CODE: 'name'               => $product_attribute_group['name'],
LINE: 316
CODE: $product_attribute_query = $this->db->query("SELECT a.attribute_id, ad.name, pa.text FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.product_id = '" . (int)$product_id . "' AND a.attribute_group_id = '" . (int)$product_attribute_group['attribute_group_id'] . "' AND ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY a.sort_order, ad.name");
LINE: 304
CODE: 'name'         => $product_attribute['name'],
LINE: 311
CODE: 'name'                    => $product_option_value['name'],
LINE: 347
CODE: 'name'                 => $product_option['name'],
LINE: 367
FILE: catalog/view/theme/default/template/product/product.tpl
CODE: <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td>
LINE: 54
CODE: <td><?php echo $attribute['name']; ?></td>
LINE: 62
CODE: <td><?php echo $attribute['text']; ?></td>
LINE: 65
CODE: <label class="control-label"><?php echo $option['name']; ?></label>
LINE: 204
LINE: 225
LINE: 246
LINE: 279
CODE: <label class="control-label" for="input-option<?php echo $option['product_option_id']; ?>"><?php echo $option['name']; ?></label>
LINE: 189
LINE: 270
LINE: 279
LINE: 298
LINE: 311
LINE: 324
CODE: <?php echo $option_value['name']; ?>
LINE: 196
LINE: 223
LINE: 251
LINE: 279
CODE: <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" />
LINE: 222
LINE: 278
CODE: <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" />
LINE: 256
CODE: <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
LINE: 196
FILE: catalog/view/theme/theme590/template/product/product.tpl
CODE: <td colspan="2"><strong><?php echo $attribute_group['name']; ?></strong></td>
NOT FOUND!
FILE: catalog/view/theme/default/template/product/compare.tpl
CODE: <td colspan="<?php echo count($products) + 1; ?>"><strong><?php echo $attribute_group['name']; ?></strong></td>
LINE: 112
CODE: <td><?php echo $attribute['name']; ?></td>
LINE: 120
CODE: <td><?php echo $product['attribute'][$key]; ?></td>
NOT FOUND!
FILE: catalog/view/theme/theme590/template/product/compare.tpl
CODE: <td colspan="<?php echo count($products) + 1; ?>"><strong><?php echo $attribute_group['name']; ?></strong></td>
LINE: 113
CODE: <td><?php echo $attribute['name']; ?></td>
LINE: 121
CODE: <td><?php echo $product['attribute'][$key]; ?></td>
NOT FOUND!
CODE: $data['attribute_groups'][$attribute_group['attribute_group_id']]['name'] = $attribute_group['name'];
LINE: 134
CODE: $data['attribute_groups'][$attribute_group['attribute_group_id']]['attribute'][$attribute['attribute_id']]['name'] = $attribute['name'];
LINE: 140
CODE: $attribute_data[$attribute['attribute_id']] = $attribute['text'];
LINE: 108
CODE: 'attribute'    => $attribute_data,
LINE: 131
FILE: admin/model/catalog/option.php
CODE: , name = '" . $this->db->escape($value['name']) . "'
LINE: 10
LINE: 38
CODE: , name = '" . $this->db->escape($option_value_description['name']) . "'
LINE: 22
LINE: 59
CODE: public function getOptions($data = array()) {
LINE: 89
CODE: public function getOptionValueDescriptions($option_id) {
LINE: 170
CODE: 'name' => $result['name']
LINE: 141
CODE: 'name' => $option_value_description['name']
LINE: 187
FILE: admin/controller/catalog/option.php
CODE: $data['options'][] = array(
LINE: 174
CODE: $data['column_name'] = $this->language->get('column_name');
LINE: 189
CODE: $data['entry_name'] = $this->language->get('entry_name');
LINE: 280
FILE: admin/language/de-DE/catalog/option.php
CODE: <?php
LINE: 0
FILE: admin/language/english/catalog/option.php
CODE: <?php
LINE: 0
FILE: admin/language/russian/catalog/option.php
CODE: <?php
LINE: 0
FILE: admin/view/template/catalog/option_list.tpl
CODE: <td class="text-right"><?php if ($sort == 'o.sort_order') { ?>
LINE: 45
CODE: <td class="text-right"><?php echo $option['sort_order']; ?></td>
LINE: 66
CODE: <td class="text-center" colspan="4"><?php echo $text_no_results; ?></td>
LINE: 72
FILE: admin/view/template/catalog/option_form.tpl
CODE: <div class="form-group">
LINE: 52
CODE: <td class="text-left"><?php echo $entry_image; ?></td>
LINE: 130
CODE: <td class="text-left"><a href="" id="thumb-image<?php echo $option_value_row; ?>" data-toggle="image" class="img-thumbnail"><img src="<?php echo $option_value['thumb']; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /></a>
LINE: 156
CODE: <td colspan="3"></td>
LINE: 166
CODE: html += '  <td class="text-left"><a href="" id="thumb-image' + option_value_row + '" data-toggle="image" class="img-thumbnail"><img src="<?php echo $placeholder; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /></a><input type="hidden" name="option_value[' + option_value_row + '][image]" value="" id="input-image' + option_value_row + '" /></td>';
LINE: 208
CODE: 'name'                    => $option_value['name'],
LINE: 350
CODE: 'name'                 => $option['name'],
LINE: 367
----------------------------------------------------------------

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

Cuetosy938, в админке ошибок нет? Поля для подсказок везде появились?

theme590 - это что за шаблон?

Жду в личку доступы по фтп, и в админку.

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

  • 3 weeks later...
  • 4 weeks later...

Да, работает, в демо добавил.

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

  • 3 months later...

В админке поля отображаются, я их заполнил, все ок. А на сайте нет ни чего. В чем может быть проблема?

Шаблон не дефолт, ocStore 2.1

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


  • 3 weeks later...
3 часа назад, scopus сказал:

Как можно добавить поддержку вашего модуля на другом шаблоне?

 

Дать доступ к сайту с этим шаблоном.

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

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

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

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

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

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

Вхід

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

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

Important Information

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