«Расширенная отладка» версии 14.1.2 и выше значительно упрощает анализ таких моментов.
В настройках «Расширенной отладки» есть три опции для управления её выводом в подобных особых случаях:
Настройки
Перехват редиректов
Начнём с наиболее интересной возможности – вывода отладочной информации при редиректах. Если опция «Показывать при редиректах» включена, то перед редиректом выполнение кода страницы останавливается, редирект не производится, а место него выводится отладочная информация как на обычной странице.Над информацией выводится предупреждение о том, что это страница с редиректом и указывается куда и с каким кодом должно было быть перенаправление. Можно кликнуть ссылку и перейти на страницу после редиректа как при обычной работе движка, а можно открыть её в новой вкладке браузера, если нужно одновременно видеть отладочную информацию до и после редиректа.
Данная функция пока доступна только в «Полном» режиме отладки, так как использует хук ‘redirect’, отсутствующий в InstantCMS 2.14.1. Скачать патч для полного режима можно на странице описания режимов работы отладки
Запрос на добавление такого хука я отправил Fuze, надеюсь, он добавит его в 2.14.2
Ошибки 403 и 404
Вывод отладочной информации на страницах ошибок 403 и 404 включается опцией «Показывать на страницах ошибок 403 (Доступ запрещён) и 404 (Не найдено)» в настройках. Работает и в стандартном, и в полном режимах отладки.
Страница 403
Страница 404
Как найти причину, вызвавшую ошибку 403/404?
Очень легко. Достаточно в настройках отладки разрешить вывод в лог событий и в строке фильтра по имени события ввести ‘403’ или ‘404’.Например, на скринах выше сразу видно, что обработчик ошибки «403» был вызван в методе actionContentItemView в файле /system/controllers/content/actions/item_view.php в строке 76. А ошибка «404» произошла в том же методе actionContentItemView в файле /system/controllers/content/actions/item_view.php в строке 85. (Это я генерировал тестовые ошибки для примера, в реальных файлах в этих строках таких вызовов нет).
При желании можно включить трассировку и увидеть полный стек вызовов, как это показано на скринах.
Вывод в модальных окнах
При включении опции «Показывать в модальных окнах» во всех всплывающих окнах, получающих от сервера html-код, будет выводится информация отладки. Причём, из-за разной реализации этих окон в движке для фронта и бэкенда (стандартным и Ajax запросами, соответственно), на фронте сначала будет показано обычное содержимое окна, а под ним – отладка. В Админке наоборот, вверху будет выводится отладочная информация, а уже под ней – содержимое страницы модального окна. Функционал доступен и в стандартном, и в полном режимах отладки.
Виджет в Админке
В окнах на JSON-ответах отладка не выводится.