Ошибка: Модификатору необходим уникальный id код!

Тема в разделе "Обо всём", создана пользователем BigsS, 11 дек 2015.

  1. BigsS

    BigsS Новичок

    Сообщения:
    20
    Симпатии:
    2
    Предистория: Собственный модификатор работал долгое время без проблем. Наступил момент, когда его нужно было немного поправить. Без всяких "чудовищных" мыслей поправил, а именно дописал несколько строк. После его инсталляции получаю:
    Модификатору необходим уникальный id код!

    Кое что несущественнное в блоке заговка сделал - 0. Попытался в сети найти ответ -0. Пытался из мухи слона сделать, совершая идиотские вещи с заголовочным блоком -> 0.

    В конце концов вернулся к исходному файлу - ОК.

    Я не хочу воспроизводить здесь добавленный мной код (в нем ничего нет интересного, а если бы и было???) - почему возникает такая ошибка? Это вопрос к спецам, есно.

    ЗЫ. Забыл уточнить. Версия сборки 2.0.1.1
     
    Последнее редактирование: 11 дек 2015
  2. BigsS

    BigsS Новичок

    Сообщения:
    20
    Симпатии:
    2
    Ошибка устранена, и причина ясна, но толком ничего я не могу сказать.

    Основная причина возникновения данной ошибки - некорректный ввод строк нового кода , которые были загружены в конец существующего файла. Визуально совершенно невозможно определить разницу - только перезапись.

    Объяснить смысл вывода данной ошибки я не берусь. Пускай это будет сродни схожей ошибки, которая может возникать, когда в конкретной строке кода юзер забыл поставить "точку с затятой".
     
    Последнее редактирование: 11 дек 2015
  3. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    640
    надеюсь прежде чем говорить об ошибки вы прочитали документации и увидели, что в формате записи модификатора есть строчка для уникального названия <code>modification_id</code>
    Даже сама ошибка вам говорит об этом!!! Просто голосит...
     
    GoldenScrew нравится это.
  4. BigsS

    BigsS Новичок

    Сообщения:
    20
    Симпатии:
    2
    Ален, конечно обратил. Но все манипуляции с этим ни к чему не привели. Я же выше писал, что пытался изменять даже то, что смысла делать не нужно было (из мухи слона делал...) Выше постом, я объяснил ситуацию, которая была причиной.
     
  5. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    640
    В первом сообщении про то что нужен уникальный код, для этого надо ввести данный тег.
    Во втором сообщении ошибки данной нет, значит ввели, но теперь ругается на то что не уникальный. Значит так оно и есть.
    Например в базу уже загрузили свой модификатор с даным кодом и пытаетесь загрузить заново или кинули модификатор в папку system и забыли о нем или обратная ситуация, в базе есть, а вы грузите в system
     
  6. BigsS

    BigsS Новичок

    Сообщения:
    20
    Симпатии:
    2
    Ален, спасибо Вам большое за участие, Вы правы на счет моих действий. Но! Тег ПРИСУТСТВОВАЛ даже когда я писал первый пост, и даже когда я его менял толку какого не было. Во втором сообщении Вы правы на 100% - я забыл удалить старый модификатор, который установился все-таки минутой раньше, но криво (устал я просто уже тогда...). До написания второго сообщения я полностью перезаписал мной вставленный код (в самом конце модификатора !!!!), после чего первая ошибка пропала.

    Вот тот кусок кода, из которого была ошибка (я его вернул из кеша)

    Код:
      <operation>
      <search><![CDATA[
    $sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";
      ]]></search>
      <add position="replace"><![CDATA[
    //  $sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";
      $sql .= " LEFT JOIN " . DB_PREFIX . "product_to_manufacturer p2m ON (p.product_id = p2m.product_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";
          ]]></add>
      </operation>
      <operation>
      <search><![CDATA[
    $sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'";
      ]]></search>
      <add position="replace"><![CDATA[
      //  $sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'";
      $sql .= " AND (p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "' OR p2m.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "')";
      ]]></add>
      </operation>
    

    ОН вызывает эту ошибку

    А вот это код не вызывает:
    Код:
      <operation>
      <search><![CDATA[
    $sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";  
      ]]></search>
      <add position="replace"><![CDATA[
    //  $sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";
      $sql .= " LEFT JOIN " . DB_PREFIX . "product_to_manufacturer p2m ON (p.product_id = p2m.product_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";  
      ]]></add>
      </operation>    
      <operation>
      <search><![CDATA[
    $sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'";  
      ]]></search>
      <add position="replace"><![CDATA[
    //  $sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'";
      $sql .= " AND (p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "' OR p2m.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "')";  
      ]]></add>
      </operation>
    
    Все работает! И сам код и модификатор.
     
    Последнее редактирование: 11 дек 2015
  7. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    640
    Я извиняюсь, но я потерял ход мыслей, насчет ошибок. Сейчас проблема осталась или решена?
     
    BigsS нравится это.
  8. BigsS

    BigsS Новичок

    Сообщения:
    20
    Симпатии:
    2
    Ален, еще раз спасибо, что не оставили меня наедине с проблемой. Сейчас все отлично работает (пока). А ("пока") пока на моей совести :) . Спасибо Вам.

    PS: код приложил просто так. дело в том
    Compare Suite считает что куски кода идеальные, но notepad++ все- таки нашел существенное различие вот здесь (скрин приложил).
    Думаю, что здесь на ФОРУМЕ ОНИ ТАК ЖЕ ИДЕАЛЬНЫЕ

    Тема считаю далее бесполезной для продолжения.
     

    Вложения:

    • sshot-157.jpg
      sshot-157.jpg
      Размер файла:
      103,2 КБ
      Просмотров:
      122
    Последнее редактирование: 12 дек 2015
    Fortoons нравится это.
  9. SergeTkach

    SergeTkach Новичок

    Сообщения:
    9
    Симпатии:
    2
    Очень необычная причина ошибки "Модификатору необходим уникальный id код!"
    ------------------------------
    Лично у меня причина ошибки была вызвана использованием в <link> знака &</link> (вместо &amp;)
     
  10. Fortoons

    Fortoons Новичок

    Сообщения:
    11
    Симпатии:
    0
    Действительно!!!
    У меня такая-же ситуация была, помог этот пост.
    Спасибо!!!