Вход • Регистрация

Ошибка при поиске товаров

  • 30 сентября 2013 г.
  • Неожиданно обнаружил, что не работает поиск товара для неавторизованных пользователей:
    Код
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE s.act1='1' AND s.trash='0' AND (s.access='0') AND s.site_id=26 AND s.date_' at line 1 query: SELECT COUNT(DISTINCT s.id) FROM `diafan_shop` AS s INNER JOIN `diafan_shop_category_rel` AS c ON s.id=c.element_id AND c.cat_id IN (59) LEFT JOIN `diafan_shop_price` AS pr ON pr.good_id=s.id AND pr.trash='0' AND pr.date_start<=1380520878 AND (pr.date_start=0 OR pr.date_finish>=1380520878) AND pr.currency_id=0 AND pr.role_id=0 AND pr.user_id=0 AND pr.threshold <= 0 AND pr.threshold_cumulative <= WHERE s.act1='1' AND s.trash='0' AND (s.access='0') AND s.site_id=26 AND s.date_start<=1380571140 AND (s.date_finish=0 OR s.date_finish>=1380571140)

    пишет вот такую штуку.

    под админом все работает как надо.
    я уже удалил все товары, характеристики, все равно ошибка вылазит.
    помогите плиз )
    • 03 октября 2013 г.
    • Ну ошибка тут явно в запросе - если внимательно его посмотреть, то видна ошибка синтаксиса -
      после слов:
      AND pr.threshold_cumulative <= должно стоять что-то с чем это поле threshold_cumulative таблицы diafan_shop_price сравнивается. А в тесте запроса сразу идет оператор WHERE. Либо ошибка в самом диафане, либо вы случайно что то удалили и не заметили этого. Проверьте текст модуля ваш и оригинальный.
  • 30 сентября 2013 г.
  • Проблема в существовании файла:
    modulesshopshop.model.custom.php

    ошибка возникает даже с пустым файлом... как только удаляешьпереименовываешь его - все начинает нормально работать
    • 30 сентября 2013 г.
    • Цитата
      Проблема в существовании файла:
      modulesshopshop.model.custom.php

      А кто Вам этот файл подсунул?
      • 30 сентября 2013 г. , редакция: 30 сентября 2013 г.
      • я его создал, пару функций хотел заменить
        естественно
        Код
        /modules/shop/shop.model.custom.php
        • 02 октября 2013 г.
        • Вообще- то в механизме кастомизации в Диафане есть ошибки. Некоторые из них мы нашли, написали в тех поддержку, в ответ - да,да, исправим, но вот уже месяц прошел - ничего не изменилось. Там, насколько я помню, именно ошибки разбора синтаксиса в механизме кастомизации
          • 03 октября 2013 г.
          • Кастомизацией пользуется мало народу, почему-то Поэтому мы решили силы не отвлекать от 5.3, и не торопились. В ближайшие дни разберемся.
            Студия Реборн, в ТП отпишитесь
            • 03 октября 2013 г.
            • Ну, возможно и так, что бы ей пользоваться надо неплохо уметь программировать на PHP, а на Диафане можно делать неплохие сайты и практически без знания PHP. А возможно и наоборот, мало людей пользуется, потому что не получилось с 1-2 раза. Я вот, например, сколько не пытался - все оканчивалось 500 ошибкой Сервера. В тех поддержке не смогли помочь . Оказалось, что одна из причин - разбор синтаксиса блока кастомизации у вас написан так, что не допускает ни одного даже самого малейшего отклонения, даже самого незначительного. Например, если написать public function .... и оставить между этими словами не 1, а 2 пробела, то уже работать ничего не будет. Такую ошибку глазом заметить непросто а уж тем более понять, что из за нее не работает. Ну будем надеяться, что после запуска 5.3, когда более менее все станет работать - руки дойдут - поправите.
  • 14 октября 2013 г.
  • Апну тему потому что хочется этот проект по человечески сделать.
    В Багтреке видел что что-то исправили но видимо не до конца.
    Кастомизирую файл /adm/includes/theme.php
    Без разницы, что кастомизировать метод или свойство получается капитальнейший трэшак.
    И это с учётом того что были модифицированы следуюшие строки

    Код

    private static function parse_var($code)
    {
    ...
    // if(preg_match_all('/(replace|new)*( )*(public|private|protected|var)*( )*(static)*( )*\$([^;=]+)(=)*([^;]+)*;/m', $code, $matche))
    if(preg_match_all('/(replace|new)*(\s)*(public|private|protected|var)*(\s)*(static)*(\s)*\$([^;=]+)(=)*([^;]+)*;/m', $code, $matche))
    {
    ...
    private static function parse_function($code)
    {
    $funcs = array();
    // if(preg_match('/(replace|before|after|new)*( )*(public|private|protected)*( )*(static)*( )*function ([a-zA-Z0-9\_ ]+)\(([^\(]*)\)([^\{]*)\{([.\s\S]+)*/', $code, $matche))
    if(preg_match('/(replace|before|after|new)*(\s)*(public|private|protected)*(\s)*(static)*(\s)*function\s([a-zA-Z0-9\_\s]+)\(([^\(]*)\)([^\{]*)\{([.\s\S]+)*/', $code, $matche))
    {
    list($code_function, $funcs) = self::parse_function($matche[10]);
    // if(preg_match('/^([.\s\S]+)\}/', $code_function, $m))
    if(preg_match('/^([.\s\S]*)\}/', $code_function, $m))
    {
    ...

    После модификации предидущая попытка кастомизировать файл
    /modules/adminsite/adminsite.admin.php
    увенчалась успехом, до правки тоже небольшой трешак наблюдался. Пойду копать Регэкпы выше.
    • 15 октября 2013 г.
    • Денис, давайте лучше в ТП, вместе с доступами к фтп, мы потестим, покрутим. С кастомизацией мы пока работаем, дорабатываем, так что тут темы можно не апать
      • 15 октября 2013 г. , редакция: 15 октября 2013 г.
      • Ух иду трясти тех.поддержку. Боюсь только за задержки будут.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум