И тут есть два варианта, если Вы хотите проверить работает ли компонент, то можете сами составить запрос на несуществующую страницу с нужными параметрами. Например в настройках notfoundparamalert.parameters устанавливаем в _open* и сами физически заходим на заведомо несуществующую страницу с данным GET параметром, например www.example.com/advertisingg.html?_openstat=FleD5yGst1ZxN. После этого проверяем залогировалось ли и тогда можно быть уверенным, что все посещения пользователей несуществующих страниц с аналогичной меткой будут залогированы.
Либо если Вы хотите собирать все несуществующие страницы, то можно установить logpagenotfound от одного из создателей MODX.
Но тут необходимо учитывать один момент, компонент заточен именно для сбора несуществующих страниц с GET параметрами, поэтому для срабатывания страница должна их содержать. В основе компонента используется метод объекта Request getParameters(), который вырезает из запроса все части запроса связанные с формированием URL страницы, поэтому страницы без GET параметров логироваться не будут.
На пальцах это выглядит так:
www.example.com/manger/ — не сработает, так как GET параметры отсутствуют
www.example.com/manger/?test=1 — сработает, так как GET параметр присутствует
И тут есть два варианта, если Вы хотите проверить работает ли компонент, то можете сами составить запрос на несуществующую страницу с нужными параметрами. Например в настройках notfoundparamalert.parameters устанавливаем в _open* и сами физически заходим на заведомо несуществующую страницу с данным GET параметром, например www.example.com/advertisingg.html?_openstat=FleD5yGst1ZxN. После этого проверяем залогировалось ли и тогда можно быть уверенным, что все посещения пользователей несуществующих страниц с аналогичной меткой будут залогированы.
Либо если Вы хотите собирать все несуществующие страницы, то можно установить logpagenotfound от одного из создателей MODX.
на что-то подобное
Смысла выводить текст с ошибкой посетителю нет, к тому же это может поломать верстку в зависимости от места, где мы будем вызывать сниппет. А о том, что что-то пошло не так, мы бы никогда не узнали в Вашем варианте :)
P.S. не просто признавать, что изобрел велосипед, но в данном случае так и есть :) Спасибо, что указали на это.
Из всех имеющихся решений Inherit Template действительно одно из лучших с точки зрения удобства, назначил TV и забыл. С другой стороны, лишняя TV, плюс она доступна для редактирования в родителе (что уже порождает возможность тыкнуть в нее любопытному менеджеру, хотя ее можно и скрыть через доступ), плюс возможность работы только с одним уровнем вложенности и, насколько я понимаю MODX и логику компонента, сделать мультивложенность на TV прямым путем не получится.
P.S. У самого были сомнения про эту картинку, но различное поведение указания шаблона при разных способах добавления документа просто не оставило мне шанса не пошутить подобным образом :)
P.S. Алексей я никоим образом не придираюсь, но мне не понравилось ни одно из найденных решений, включая TemplateSelect, AutoTemplate, Inherit Template, а так же многочисленные безымянные решения на официальном форуме :) Именно поэтому реализовал свое видение решения данной проблемы.
1. Посчитать время с момента начала обработки входящего запроса MODX:
2. Посчитать время выполнения только в блоке обработки цикла:
Если не заметно, кто именно быстрее, увеличиваете значение to, пока не станет понятно :)
P.S. Насколько вижу insert немного пошустрее :) Только это хоть как-то заметно от 10000 вызовов поэтому на реальном проекте Вы вряд ли заметите разницу.
Перед размещением заметки я раз 5 думал, выкинуть из нее результаты замеров производительности, потому что они загромоздят текст еще сильнее, или выложить их куцый набор. Но без последовательности рассуждений и этих замеров ряд мыслей просто теряются и получается как анекдот с сыром и вороной.
Сидит ворона с сыром, подходит лиса бьет бейсбольной битой, забирает сыр и уходит. Ворона сидит и думает: «Нормально так басню сократили!».
В любом случае спасибо, постараюсь воспользоваться советами о том, как можно сделать значительно короче.
P.S. не являюсь большим специалистом по Fenom, однако конструкция в шаблоне с включенным pdotools_fenom_parser:
, выдаст на родительском документе ровно тоже самое предупреждение, с которого начинается повествование. То есть чанк обработается, вне зависимости от логики условия.
Но это не совсем правильно, водить пользователя с контекста через цепочку редиректов. Все таки с моей точки зрения объявление должно вести на страницу, которая сразу отдаст 200 ответ заголовка. Да и спасибо за идею, надо подумать есть ли смысл отслеживать аналогичные параметры при редиректе.
Или ждать нового релиза, исправление уже добавили в новую ветку.
Или ждать нового релиза, исправление уже добавили в новую ветку.
Проблема в том, что в данном обновлении в методе sortby из xpdoquery.class.php стал обязательным второй аргумент и старый код обрабатывающий пакеты перестал работать. Если кому-то нужно, чтобы эта опция заработала до нового релиза, то необходимые исправления можно посмотреть тут. Всего одна строчка :)