[Помогите] Ошибка в модуле attributic

Тема в разделе "OpenCart", создана пользователем Dimakusch, 2 май 2016.

  1. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    124
    Симпатии:
    1
    Здравствуйте! установил модуль выбора группы атрибутов при добавлении товара, но появляется одна ошибка (Журнал ошибок)
    Код:
    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'];
    Не знаю или связана ошибка с этим, но в настройках модуля при нажатии добавить новый шаблон атрибутов ничего не происходит.
     
  2. MGT1

    MGT1

    Регистрация:
    5 янв 2013
    Сообщения:
    617
    Симпатии:
    182
    Последнее редактирование: 2 май 2016
  3. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    124
    Симпатии:
    1
    Стоит maxystore 1.5.5.1.1
    Вот продажник : Атрибуты
    Версия модуля 1.3

    Не работает Добавить шаблон. При нажатии ничего не происходит. Но первый шаблон работает отлично при добавлении атрибутов в товаре.
    [​IMG]
     
  4. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    740
    Симпатии:
    266
    Советую посмотреть в консоли разработчика ошибки. Часто уже это помогает (смотреть надо на той странице где не работает, естественно). Если не знаете как это делается то почитать тут нужно вот это:
    [​IMG]
    Ну еще как вариант смотреть ошибки php, проверять возможность модификаций vqmod, в общем, где-то что-то должно быть.
     
    Dimakusch нравится это.
  5. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    124
    Симпатии:
    1
    [​IMG]
    Вот такая ошибка вылезла, но в них я совершенно не разбираюсь(
     
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    777
    У вас на странице не хватает js функции addModule, которая как раз и отвечает за добавление.
    Учитывая, что эта страница для модуля родная, можно исключить проблемы с vQmod, то есть, модуль изначально кривой.

    Для начала проверьте, действительно ли её нет или её не видно из-за предыдущей ошибки. А предыдущая ошибка у вас на строке 1258 в исходном коде страницы (не путать с шаблоном).
     
    Dimakusch нравится это.
  7. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    124
    Симпатии:
    1
    На странице модуля функция есть, вот она:
    Код:
    <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 + '&nbsp;<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>';
    
     
  8. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    740
    Симпатии:
    266
    Я в js не слишком силен, но я бы попробовал убрать из "МехМод'а" апостроф - возможно, он мешает скрипту срабатывать.
     
    Dimakusch нравится это.
  9. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    124
    Симпатии:
    1
    Спасибо большое, а я смотрел на эту строчку и думал что в ней не так и почему именно она указана в ошибке )) Все заработало))
     
  10. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    777
    Просто одинарная кавычка заставляет интерпретатор js думать, что строка заканчивается на этом месте и, соответственно, остальная часть строки воспринимается как js код, которым не является. Отсюда и ошибка.

    Апостроф можно не убирать, а просто заэкранировать добавив перед ним символ обратного слеша - \, либо заменить на его html представление - &apos;
     
    Dimakusch и cereberlum нравится это.