Здравствуйте! установил модуль выбора группы атрибутов при добавлении товара, но появляется одна ошибка (Журнал ошибок) Код: 2016-05-01 16:14:04 - PHP Notice: Undefined index: selected in /home/****/public_html/admin/controller/module/attributic.php on line 129 вот эта строчка(128-129): Код: foreach ($settings as $setting) { $attribute_ids = $setting[0][$this->request->post['this_template_id']]['selected']; Не знаю или связана ошибка с этим, но в настройках модуля при нажатии добавить новый шаблон атрибутов ничего не происходит.
Opencart 1.5.6.4? И ссылочку бы на сам продажник модуля. Тема была - правда до ума так и не довел. https://wmasteru.org/threads/attribute-category-1-1-не-работает-функционал-до-конца.20102/
Стоит maxystore 1.5.5.1.1 Вот продажник : Атрибуты Версия модуля 1.3 Не работает Добавить шаблон. При нажатии ничего не происходит. Но первый шаблон работает отлично при добавлении атрибутов в товаре.
Советую посмотреть в консоли разработчика ошибки. Часто уже это помогает (смотреть надо на той странице где не работает, естественно). Если не знаете как это делается то почитать тут нужно вот это: Ну еще как вариант смотреть ошибки php, проверять возможность модификаций vqmod, в общем, где-то что-то должно быть.
У вас на странице не хватает js функции addModule, которая как раз и отвечает за добавление. Учитывая, что эта страница для модуля родная, можно исключить проблемы с vQmod, то есть, модуль изначально кривой. Для начала проверьте, действительно ли её нет или её не видно из-за предыдущей ошибки. А предыдущая ошибка у вас на строке 1258 в исходном коде страницы (не путать с шаблоном).
На странице модуля функция есть, вот она: Код: <script type="text/javascript"><!-- var module_row = <?php echo $module_row; ?>; function addModule() { html = '<div id="tab-module-' + module_row + '" class="vtabs-content">'; html += ' <table class="form">'; html += ' <tr>'; html += ' <td><div style="background: #EFEFEF;border-radius: 3px;border: 1px solid #DDDDDD;color: #000;padding: 0 10px;width: 98%;"><?php echo $name_template; ?> <input name="settings[' + module_row + '][title]" id="title-' + module_row + '" style="width: 80%;"></input><input type="hidden" name="settings[' + module_row + '][template_id]" value="' + module_row + '" /></div></td>'; html += ' </tr>'; html += ' <tr>'; html += ' <td>'; html += ' <table class="list">'; html += ' <thead>'; html += ' <tr>'; html += ' <td width="1" style="text-align: center;"><input type="checkbox" onclick="$(\'input.ch' + module_row + '\').attr(\'checked\', this.checked);" /></td>'; html += ' <td class="left"><?php echo $attribute_name; ?></td>'; html += ' <td class="left"><?php echo $attribute_value; ?></td>'; html += ' <td class="left"><?php echo $attribute_group; ?></td>'; html += ' </tr>'; html += ' </thead>'; html += ' <tbody>'; <?php foreach ($attributes as $attribute) { ?> html += ' <tr>'; html += ' <td style="text-align: center;"><input type="checkbox" name="settings[' + module_row + '][selected][<?php echo $attribute['attribute_id']; ?>]" value="<?php echo $attribute['attribute_id']; ?>" class="ch' + module_row + '" /></td>'; html += ' <td class="left"><?php echo $attribute['name']; ?></td>'; html += ' <td class="left">'; <?php foreach ($languages as $language) { ?> html += ' <img style="margin: 12px 5px;" src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" align="top" />'; html += ' <textarea name="settings[' + module_row + '][<?php echo $attribute['attribute_id']; ?>][product_attribute_description][<?php echo $language['language_id']; ?>][text]" cols="40" rows="2"></textarea>'; <?php } ?> html += ' </td>'; html += ' <td class="left"><?php echo $attribute['attribute_group']; ?></td>'; html += ' </tr>'; <?php } ?> html += ' </tbody>'; html += ' </table>'; html += ' </td>'; html += ' </tr>'; html += ' </table>'; html += '</div>'; $('#form').append(html); $('#module-add').before('<a href="#tab-module-' + module_row + '" id="module-' + module_row + '"><?php echo $tab_template; ?> ' + module_row + ' <img src="view/image/delete.png" alt="" onclick="$(\'.vtabs a:first\').trigger(\'click\'); $(\'#module-' + module_row + '\').remove(); $(\'#tab-module-' + module_row + '\').remove(); return false;" /></a>'); $('.vtabs a').tabs(); $('#module-' + module_row).trigger('click'); module_row++; } $('.vtabs a').tabs(); setInterval (function () { $('.breadcrumb + .success').fadeOut('slow'); }, 5000); //--></script> А по ошибке в исходном коде, то там только такая строчка: Код: html += ' <td class="left">Характеристики МехМод'а</td>';
Я в js не слишком силен, но я бы попробовал убрать из "МехМод'а" апостроф - возможно, он мешает скрипту срабатывать.
Спасибо большое, а я смотрел на эту строчку и думал что в ней не так и почему именно она указана в ошибке )) Все заработало))
Просто одинарная кавычка заставляет интерпретатор js думать, что строка заканчивается на этом месте и, соответственно, остальная часть строки воспринимается как js код, которым не является. Отсюда и ошибка. Апостроф можно не убирать, а просто заэкранировать добавив перед ним символ обратного слеша - \, либо заменить на его html представление - '