Призываю гуру МОDX, проблема после обновы pdoTools
Ситуация такая…
На сайте поиск через mFilter, немного дописанный под себя. Стоял pdoTools 2.2 примерно, все было хорошо и захотелось нам обновить его, хотя-бы чтоб пользоваться модификаторами в Fenom. А Fenom включен как парсер. Обновил до 2.6.5 и понеслась...
Выводится список объектов и в нем пагинация, кнопкой 'Показать больше' и ниже обычная постраничная.
После обновления начались приколы с пагинацией, то вылезет 2 кнопки «Показать больше», одна под другой, то ни одной не будет.
Выглядит буквально так
take.ms/d3Ilz
Полез в код страницы, увидел что 2 раза инициализируется pdoPage.
Пытался понять как это работает, но так и не нашел проблему. Что я выяснил дебагом так это что метод
Я копал начиная от pdoPage, и дошел до ядра MODX, в метод
Дальше интереснее. Я для теста добавил к загрузке скрипта маленькую модификацию.
take.ms/VaVsc
и пошел на страницу.
Под одним тегом script мой br/ был под другим нет…
Причем если посмотреть стек вызова
через какое то время я поменял br на span и наблюдал такую картину
take.ms/69J5g
Куда мне копать чтобы убрать эту ненужную инициализацию? откатывать pdoTools не очень хочется, хочется разобраться…
Кеш modx я чистил (удалял целиком папку), помогает на 2-3 запроса дальше то же самое.
UPDATE: простого решения не нашел, чтобы не выносить себе мозг, добавил проверку
На сайте поиск через 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;
}с другими скриптами проблемы замечено не было… Комментарии: 8
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Неизвестно, что и где сломается на уже работающем сайте.
Еле еле все переписал на Fenom.
Если такое дело буду откатывать pdoTools…
regClientScript иногда кэшируется с Fenom — тоже такое замечал. Скорее всего из-за этого.
Лечится просто, очисткой кэша. Не думаю, что ты каждый день меняешь шаблоны и это как-то помешает.
Спустя 3 дня…
Кеш чистил неоднократно и полностью
take.ms/LyJmv
Печалька, я надеялся все ок...( Вернул пока свой костыль с отменой повторной инициализации