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

Дополнение: 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;
    }
  
с другими скриптами проблемы замечено не было…
04 ноября 2016, 02:21    kuzmin6969   
0    601 0

Комментарии (8)

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

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

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

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

                Печалька, я надеялся все ок...( Вернул пока свой костыль с отменой повторной инициализации
                1. Василий Наумкин 07 ноября 2016, 22:17 # 0
                  Ну, а у меня идей больше нет.
      Вы должны авторизоваться, чтобы оставлять комментарии.