Здравствуйте, однополчане по modx!
Я начал осваивать эту cmf и периодически натыкаюсь на подводные камни.
Например Ditto вызывается через runSnippet, paginate включен и после загрузки одной страницы с результатами вывода переходы на другие страницы перестают работать . т.е. после перехода по ссылке "далее"(index.php?id=9&start=12) мы попадаем на страницу с тем же содержанием,но естественно с адресом index.php?id=9&start=12. И кнопка далее на этой странице отсылает нас туда же(index.php?id=9&start=12)
После очистки кэша можно один раз попасть на конкретную страницу, после этого опять все встает....
Так не надо кэшировать сниппет, в котором вызов Ditto.
Нужно в настройках страницы отключить кеширование страницы, запускающей сниппет (сами сниппеты можно оставить в [[...]]).
Посмотрите пример блога на simple site, который можно поставить при инсталляции modx, там сделано так.
Quote from: Voyager at Apr 16, 2010, 04:23 AM
Нужно в настройках страницы отключить кеширование страницы, запускающей сниппет (сами сниппеты можно оставить в [[...]]).
И зачем это делать? Разве что для увеличения нагрузки на хостинг. То есть кроме отмены кэширования конкретного сниппета зачем-то дополнительно отменяется кэширование всех остальных сниппетов (если страница не кэшируется, все сниппеты, на ней расположенные, также не кэшируются), а также отменяется кэширование собственно страницы (то есть повторно выполняется разбор шаблонов, чанков и так далее). Перед тем как давать советы все же полезно немного разобраться в сути дела.
Quote from: Voyager at Apr 16, 2010, 05:32 AM
все сниппеты в контексте вывода при таком варианте остались по-прежнему кешируемые
Бред полнейший. Если бы хоть чуть-чуть понимали, как работают программы в файле document.parser.class.inc.php, не писали бы такую чушь.
Возможно ваш вариант более оптимальный. Тогда интересно, почему разработчики modx в своем примере предлагают вариант отключения кеширования страницы новостей/блога?
Quote from: x3m4ik at Apr 17, 2010, 01:22 PM
наверное лучше кешировать вызов снипетта чем страницу
Единственное кэширование выполняется при кэшировании страниц. Если не кэшировать страницу и поставить [[ ]], сниппет кэшироваться не будет. Логика видна, как я уже писал, в файле document.parser.class.inc.php. А файл разрастается в любом случае…