Призываю гуру МОDX, проблема после обновы pdoTools

Ситуация такая…

На сайте поиск через mFilter, немного дописанный под себя. Стоял pdoTools 2.2 примерно, все было хорошо и захотелось нам обновить его, хотя-бы чтоб пользоваться модификаторами в Fenom. А Fenom включен как парсер. Обновил до 2.6.5 и понеслась...

Выводится список объектов и в нем пагинация, кнопкой 'Показать больше' и ниже обычная постраничная.
После обновления начались приколы с пагинацией, то вылезет 2 кнопки «Показать больше», одна под другой, то ни одной не будет.
Выглядит буквально так

take.ms/d3Ilz

Полез в код страницы, увидел что 2 раза инициализируется pdoPage.
Пытался понять как это работает, но так и не нашел проблему. Что я выяснил дебагом так это что метод
pdoPage->loadJsCss()
вызывается ровно один раз, поэтому проблема не тут.

Я копал начиная от pdoPage, и дошел до ядра MODX, в метод
$modx->regClientScript()
и выяснил что он тоже добавляет на страницу инициализацию pdoPage только раз.

Дальше интереснее. Я для теста добавил к загрузке скрипта маленькую модификацию.
take.ms/VaVsc

и пошел на страницу.
Под одним тегом script мой br/ был под другим нет…
Причем если посмотреть стек вызова
$modx->regClientScript()
то увидим что в нем НЕТ модификации, то есть это кешированные данные. То есть MODX оперирует кешированными данными в методе regClientScript. А что тогда добавляет ту самую вторую некешированную запись? и где это происходит?

через какое то время я поменял br на span и наблюдал такую картину
take.ms/69J5g

Куда мне копать чтобы убрать эту ненужную инициализацию? откатывать pdoTools не очень хочется, хочется разобраться…
Кеш modx я чистил (удалял целиком папку), помогает на 2-3 запроса дальше то же самое.

UPDATE: простого решения не нашел, чтобы не выносить себе мозг, добавил проверку
pdoPage.initialize = function (config) {
    if($(config['more']).length){
      //console.log('Prevented second pdoPage init!');
      return;
    }
с другими скриптами проблемы замечено не было…
kuzmin6969
03 ноября 2016, 23:21
984
0

Комментарии: 8

Василий Наумкин
04 ноября 2016, 08:30
0
А Fenom включен как парсер.
А ты выключи и используй его преимущества только в чанках, а не всех страницах.

Неизвестно, что и где сломается на уже работающем сайте.
    kuzmin6969
    04 ноября 2016, 09:14
    0
    В шаблонах не будет работать? у меня овер 60 шаблонов с наследованием…
    Еле еле все переписал на Fenom.
    Если такое дело буду откатывать pdoTools…
      Василий Наумкин
      04 ноября 2016, 09:47
      +1
      Если уже всё переписано, то ничего откатывать не нужно.
      regClientScript иногда кэшируется с Fenom — тоже такое замечал. Скорее всего из-за этого.

      Лечится просто, очисткой кэша. Не думаю, что ты каждый день меняешь шаблоны и это как-то помешает.
        kuzmin6969
        04 ноября 2016, 16:57
        0
        К сожалению очистка кеша помогает только на пару минут. Не знаю почему.
          Василий Наумкин
          04 ноября 2016, 17:38
          0
          Попробуй эту версию и скажешь — помогло или нет.
            kuzmin6969
            05 ноября 2016, 00:38
            0
            Установил, пока проблемы не наблюдается!.. Завтра еще понаблюдаю
            kuzmin6969
            07 ноября 2016, 21:46
            0
            Снова заметил проблему на 2.7.0
            Спустя 3 дня…

            Кеш чистил неоднократно и полностью
            take.ms/LyJmv

            Печалька, я надеялся все ок...( Вернул пока свой костыль с отменой повторной инициализации