Демо-сайт shopkeeper 3.2.7 (modx 2.5.5) не инициализируется фильтр (tmFilters)



  • Поставил на чистую систему чистый демо сайт по инструкции. Все отрабатывает, ошибок в логах как на сервере так и на клиенте нет. Но с самого начала не появляются фильтры на фронтенде в Каталоге.

    1. В админке В управлениями фильтрами позиции фильтров стоят.
    2. MySQL в таблице tag_manager2_tags значения фильтров есть
    3. игрался параметрами в наборе параметров filters->tmFilters
    4. лазил и в filters.js
    5. пробовал ставить уже и filters_simple.js

    Может быть ли проблема в версиях LAMP самого сервера, куда копать?
    Стоит:

    • Ubuntu 16.04.2 x64
    • MySQL 5.7.18-0ubuntu0.16.04.1
    • Apache/2.4.18
    • PHP 7.0.18-0ubuntu0.16.04.1

    И еще у меня LAMP крутится в LXC-контейнере (виртуалка) на который ходим через NGINX (врятли это влияет, но на всякий напишу)



  • Дополняю информацию к вопросу:

    • В управлениями фильтрами нету галок на дереве фильтров, хотя внутри выборка по фильтрам есть.
    • После Сохранения фильтров галка появляется, но если заново заходишь в управление фильтрами - пропадают.
    • Неактивна кнопка Обновить значения, пока не сохр. документ и не появятся галки.

    Управление фильтрами админка
    0_1501478517592_Снимок экрана_2017-07-31_08-06-01.jpg

    Значения таблици tag_manager2_tags
    0_1501479225054_Снимок экрана_2017-07-31_08-30-17.jpg

    Как формируется эта галка? : Чисто выборкой значения (1\0) из MySQL либо через PHP с проверкой содержания фильтров из таблицы? Может ли данная проблема быть связана с отсутствием фильтров на сайте? Может быть в БД куда-то не пишется значение? либо из-за версий PHP не вытаскивает их?



  • Дополняюсь: Логи ошибок в modx

    При заходе в управление фильтрами

    [2017-07-31 09:53:15] (ERROR @ /var/www/html/core/xpdo/om/xpdoobject.class.php : 240) Error 42000 executing statement: 
    Array
    (
        [0] => 42000
        [1] => 1055
        [2] => Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'modxdb.tagManager.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
    )
    
    [2017-07-31 09:53:15] (ERROR @ /var/www/html/core/xpdo/om/xpdoobject.class.php : 240) Error 42000 executing statement: 
    Array
    (
        [0] => 42000
        [1] => 1055
        [2] => Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'modxdb.tagManager.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
    )
    
    [2017-07-31 09:53:19] (ERROR @ /var/www/html/core/xpdo/om/xpdoobject.class.php : 240) Error 42000 executing statement: 
    Array
    (
        [0] => 42000
        [1] => 1055
        [2] => Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'modxdb.tagManager.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
    )
    

    смущает запись sql_mode=only_full_group_by...



  • Проблема решена!!!!!

    По умолчанию в MySQL версий 5.7.* в глобальной переменной sql mode стоят значения

    @@sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
    

    Достаточно убрать в переменной значение ONLY_FULL_GROUP_BY и все заработало.

    // в MySQL в запросе проверяем моды
    SELECT @@sql_mode;
    //Убираем мод
    SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); 
    
    //Либо добавляем в конфигурационный фал MySQL в /etc/mysql/mysql.conf.d/mysqld.cnf
    
    [mysqld]  
    sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    


Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.