Ребята, всем привет! Прошу помочь разобраться мне в такой веселой магии Пример страницы https://nikaural.ru/bytovaya-khimiya/nika-super-sredstvo-dlja-mytja-posudy-koncentrat Стоит модуль смены изображений при выборе опций Код отвечающий за это в product.twig Спойлер: product.twig Код: {% if thumb %} <div class="item d-flex justify-content-center"> <meta itemprop="image" content="{{ thumb }}"> <a href="{{ popup }}" title="{{ heading_title }}" target="_blank" onclick="psw_show(0);return false" class="d-block position-relative"> <svg class="d-block img-fluid w-100" width="{{ thumb_width }}" height="{{ thumb_height }}" xmlns="http://www.w3.org/2000/svg"></svg> {% if catalog_page_lazy %} <picture> {% if thumb2x %} <source class="owl-lazy" data-srcset="{{ thumb }} 1x, {{ thumb2x }} 2x, {{ thumb3x }} 3x, {{ thumb4x }} 4x" srcset="{{ thumb_holder }}"> {% endif %} <img src="{{ thumb_holder }}" data-src="{{ thumb }}" alt="{{ heading_title }}" class="position-absolute b-0 l-0 img-fluid d-block w-100 owl-lazy"> </picture> <div class="d-flex justify-content-center align-items-center position-absolute t-0 b-0 r-0 l-0 w-100 h-100 lazy-spinner g-{{loop.index}}"> <div class="spinner-border text-gray-400"></div> </div> {% else %} <picture> {% if thumb2x %} <source srcset="{{ thumb }} 1x, {{ thumb2x }} 2x, {{ thumb3x }} 3x, {{ thumb4x }} 4x"> {% endif %} <img src="{{ thumb }}" alt="{{ heading_title }}" class="position-absolute t-0 l-0 img-fluid d-block w-100"> </picture> {% endif %} JS модуля Спойлер: JS Код: function changeOptionImage(elem, setting) { $(elem + ' input:checked, ' + elem + ' option:selected').each(function() { if (typeof $(this).data('product-image-popup') != 'undefined') { $(setting.popup_element).prop(setting.popup_attr, $(this).data('product-image-popup')); } if (typeof $(this).data('product-image-thumb') != 'undefined') { $(setting.thumb_element).prop(setting.thumb_attr, $(this).data('product-image-thumb')); } }); } Так вот в чем проблема: Когда мы заходим на страницу товара, показывает главное изображение продукта При выборе иной фасовки, изображение вроде меняется, но есть две проблемы: 1. Если мы вернемся к изначальной фасовке, то изображение не меняется на главное 2. Если мы нажимаем на фото, то в любом случае всплывает главное, не смотря на то, какая опция выбрана и какое фото соответствует этой опции За реальную помощь буду очень благодарен и даже готов отблагодарить материально =)
Пока сообщение писал, с первой проблемой разобрался, вторая актуальна На всякий случай модификатор полностью Спойлер: Модификатор Код: <?xml version="1.0" encoding="utf-8"?> <modification> <name>Options Image</name> <code>options_image.ocmod</code> <author>http://seregin-pro.ru/</author> <version>1.0.0</version> <link>http://seregin-pro.ru/</link> <!-- 3.x --> <!-- systen --> <file path="system/library/cart/cart.php"> <operation> <search index="0"><![CDATA[SELECT pov.option_value_id]]></search> <add position="replace"><![CDATA[SELECT pov.option_value_id, pov.product_image]]></add> </operation> <operation> <search index="0"><![CDATA[if ($option_value_query->num_rows]]></search> <add position="before"><![CDATA[ if ($option_value_query->row['product_image']) { $product_query->row['image'] = $option_value_query->row['product_image']; } ]]></add> </operation> </file> <!-- controller --> <file path="catalog/controller/product/product.php"> <operation> <search index="0"><![CDATA[ public function index ]]></search> <add position="after"><![CDATA[ $this->load->model('extension/module/options_image'); $this->document->addScript('catalog/view/javascript/options_image/options_image.js'); $data['options_image_setting'] = $this->model_extension_module_options_image->getOptionsImageSetting(); ]]></add> </operation> <operation> <search><![CDATA[$product_option_value_data[] = array(]]></search> <add position="after"><![CDATA[ 'product_image_popup' => $option_value['product_image'] ? $this->model_tool_image->resize($option_value['product_image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_height')) : '', 'product_image_thumb' => $option_value['product_image'] ? $this->model_tool_image->resize($option_value['product_image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_thumb_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_thumb_height')) : '', ]]></add> </operation> </file> <file path="admin/controller/catalog/product.php"> <operation> <search><![CDATA[$data['product_options'] = array();]]></search> <add position="before"><![CDATA[ $this->load->model('tool/image'); ]]></add> </operation> <operation> <search index="0"><![CDATA[$product_option_value_data[] = array(]]></search> <add position="before"><![CDATA[ if (is_file(DIR_IMAGE . $product_option_value['product_image'])) { $product_image = $product_option_value['product_image']; $product_image_thumb = $product_option_value['product_image']; } else { $product_image = ''; $product_image_thumb = 'no_image.png'; } ]]></add> </operation> <operation> <search index="0"><![CDATA[$product_option_value_data[] = array(]]></search> <add position="after"><![CDATA[ 'product_image' => $product_image, 'product_image_thumb' => $this->model_tool_image->resize($product_image_thumb, 100, 100), ]]></add> </operation> </file> <!-- view --> <file path="catalog/view/theme/*/template/product/product.twig"> <operation> <search><![CDATA[type="radio" name="option[{{ option.product_option_id }}]"]]></search> <add position="replace"><![CDATA[{% if option_value.product_image_thumb %} data-product-image-thumb="{{ option_value.product_image_thumb }}"{% endif %}{% if option_value.product_image_popup %} data-product-image-popup="{{ option_value.product_image_popup }}"{% endif %}type="radio" name="option[{{ option.product_option_id }}]"]]></add> </operation> <operation> <search><![CDATA[<option value="{{ option_value.product_option_value_id }}"]]></search> <add position="replace"><![CDATA[<option{% if option_value.product_image_thumb %} data-product-image-thumb="{{ option_value.product_image_thumb }}"{% endif %}{% if option_value.product_image_popup %} data-product-image-popup="{{ option_value.product_image_popup }}"{% endif %} value="{{ option_value.product_option_value_id }}"]]></add> </operation> <operation> <search index="0"><![CDATA[name="quantity"]]></search> <add position="before"><![CDATA[ {% if options %} <script type="text/javascript"><!-- $(document).ready(function() { options_image_setting = {}; options_image_setting.popup_element = "{{ options_image_setting.product_popup_element }}"; options_image_setting.popup_attr = "{{ options_image_setting.product_popup_attr }}"; options_image_setting.thumb_element = "{{ options_image_setting.product_thumb_element }}"; options_image_setting.thumb_attr = "{{ options_image_setting.product_thumb_attr }}"; $('#product input[type=\'radio\'], #product input[type=\'checkbox\'], #product select').on('change', function() { changeOptionImage('#product', options_image_setting); }); }); //--></script> {% endif %} ]]></add> </operation> </file> <file path="admin/view/template/catalog/product_form.twig"> <operation> <search index="0,2"><![CDATA[<td class="text-right">{{ entry_quantity }}</td>]]></search> <add position="replace"><![CDATA[<td class="text-center">{{ entry_image }}</td><td class="text-right">{{ entry_quantity }}</td>]]></add> </operation> <operation> <search><![CDATA[<td class="text-right"><input type="text" name="product_option[{{ option_row }}][product_option_value][{{ option_value_row }}][quantity]"]]></search> <add position="before"><![CDATA[ <td class="text-center"> <a href="" id="product-option-thumb-image{{ option_row }}{{ option_value_row }}" data-toggle="image" class="img-thumbnail"><img src="{{ product_option_value.product_image_thumb }}" alt="" title="" data-placeholder="{{ placeholder }}" /></a> <input type="hidden" name="product_option[{{ option_row }}][product_option_value][{{ option_value_row }}][product_image]" value="{{ product_option_value.product_image }}" id="input-product-option-image{{ option_row }}{{ option_value_row }}" /> </td> ]]></add> </operation> <operation> <search><![CDATA[html += ' <td class="text-right"><input type="text" name="product_option[' + option_row + '][product_option_value][' + option_value_row + '][quantity]"]]></search> <add position="before"><![CDATA[ html += '<td class="text-center"><a href="" id="product-option-thumb-image' + option_row + option_value_row + '" data-toggle="image" class="img-thumbnail"><img src="{{ placeholder }}" alt="" title="" data-placeholder="{{ placeholder }}" /></a><input type="hidden" name="product_option[' + option_row + '][product_option_value][' + option_value_row + '][product_image]" value="" id="input-product-option-image'+ option_row + option_value_row + '" /></td>'; ]]></add> </operation> <operation error="skip"> <search index="0,2"><![CDATA[<td colspan="6"></td>]]></search> <add position="replace"><![CDATA[<td colspan="7"></td>]]></add> </operation> </file> <!-- model --> <file path="catalog/model/catalog/product.php"> <operation> <search><![CDATA[ $product_option_value['quantity'], ]]></search> <add position="after"><![CDATA[ 'product_image' => $product_option_value['product_image'], ]]></add> </operation> </file> <file path="admin/model/catalog/product.php"> <operation> <search><![CDATA[ $product_option_value['quantity'], ]]></search> <add position="after"><![CDATA[ 'product_image' => $product_option_value['product_image'], ]]></add> </operation> <operation> <search><![CDATA[pov.quantity,]]></search> <add position="replace"><![CDATA[pov.product_image, pov.quantity,]]></add> </operation> <operation> <search><![CDATA[quantity = '" . (int)$product_option_value['quantity'] . "']]></search> <add position="replace"><![CDATA[product_image = '" . $this->db->escape($product_option_value['product_image']) . "', quantity = '" . (int)$product_option_value['quantity'] . "']]></add> </operation> </file> </modification>
У Вас просто модуль не донастроен (не указан селектор). Напишите автору, за вознаграждение точно донастроит как надо. И еще, откажитесь от кириллических имен в названии изображений.
Да я бы рад, но автор не выходит на связь ( Может Вы поможете??) В части кириллицы абсолютно согласен, но не я решаю