Призываю гуру МО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 включен как парсер.А ты выключи и используй его преимущества только в чанках, а не всех страницах.
Неизвестно, что и где сломается на уже работающем сайте.
В шаблонах не будет работать? у меня овер 60 шаблонов с наследованием…
Еле еле все переписал на Fenom.
Если такое дело буду откатывать pdoTools…
Еле еле все переписал на Fenom.
Если такое дело буду откатывать pdoTools…
Если уже всё переписано, то ничего откатывать не нужно.
regClientScript иногда кэшируется с Fenom — тоже такое замечал. Скорее всего из-за этого.
Лечится просто, очисткой кэша. Не думаю, что ты каждый день меняешь шаблоны и это как-то помешает.
regClientScript иногда кэшируется с Fenom — тоже такое замечал. Скорее всего из-за этого.
Лечится просто, очисткой кэша. Не думаю, что ты каждый день меняешь шаблоны и это как-то помешает.
К сожалению очистка кеша помогает только на пару минут. Не знаю почему.
Попробуй эту версию и скажешь — помогло или нет.
Установил, пока проблемы не наблюдается!.. Завтра еще понаблюдаю
Снова заметил проблему на 2.7.0
Спустя 3 дня…
Кеш чистил неоднократно и полностью
take.ms/LyJmv
Печалька, я надеялся все ок...( Вернул пока свой костыль с отменой повторной инициализации
Спустя 3 дня…
Кеш чистил неоднократно и полностью
take.ms/LyJmv
Печалька, я надеялся все ок...( Вернул пока свой костыль с отменой повторной инициализации
Ну, а у меня идей больше нет.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.