Новые возможности и удобства, облегчающие разработчикам отладку компонентов и шаблонов.
Если вы ещё не знакомы с «Расширенной отладкой», то можете почитать описание её возможностей и примеры её использования.
Функция пока доступна только в «полном» режиме отладки, так как использует хук ‘redirect’, отсутствующий в InstantCMS 2.14.1. Скачать обновлённый патч для полного режима можно на странице описания режимов работы отладки
С версии InstantCMS 2.14.2 этот хук добавлен "в коробку", значит перехват редиректов будет работать и в стандартном режиме.
+ Добавил вывод отладочной информации на страницах ошибок 403 (Доступ запрещён) и 404 (Не найдено). Теперь можно легко понять, что вызвало ту или иную ошибку. Работает и в стандартном, и в полном режимах.
+ Добавил вывод отладочной инфы в модальных окнах (настройки виджетов на фронте и в Админке, настройки главной страницы Админки, настройки таблиц, фильтров, порядка категорий и т.п.), кроме окон на JSON-ответах. Также работает и в стандартном, и в полном режимах.
Подробнее про анализ редиректов и ошибок 403/404, и про модальные окна
+ Добавил функцию dbg_table() — накапливает в массив все переданные ей данные и выводит после лога всё сразу в таблицы.
Подробнее про табличные контрольные точки
+ Добавил предупреждение о наличии на странице контрольных точек dbg() или dbg_table() при выключенной отладке.
+ Добавил управление выводом категорий логов через контрольные точки dbg(). Можно выводить или скрывать нужные типы лога на отдельных участках кода.
Подробнее про использование контрольных точек
+ Добавил сокращённый вид основной таблицы с отладочной информацией. Двойной клик мышкой в любом месте таблицы — переключение между полной и сокращённой таблицами. Вид по-умолчанию задаётся опцией "Полный вид основной таблицы данных отладки" на вкладке "Вид".
+ Ещё раз переделал отступы в блоках вывода данных и результатов. Добавил вертикальные направляющие для отступов — стало проще отслеживать уровни. И теперь корректно переносятся очень длинные строки в массивах. В очень редких случаях при выводе переменных содержащих код яваскрипт оформление лога может быть нарушено, так как нет простого способа гарантированно отличить в выводе var_dump() окончание элемента массива от закрывающей скобки скрипта.
+ Добавил страницу PHPini, закрытую админским доступом (ссылка в Настройках). Иногда бывает нужно посмотреть текущие настройки PHP и его модулей, а копировать на хостинг простой файлик с выводом PHPini, а потом удалять его надоело.
* Панель параметров в "Настройка" стала более компактной — в две колонки.
* Правки по мелочам
Скачать обновление можно в Каталоге
Если вы ещё не знакомы с «Расширенной отладкой», то можете почитать описание её возможностей и примеры её использования.
Изменения в этой версии:
+ Добавил перехват редиректов и вывод отладочной информации перед ними. Скрин показан на заглавной картинке этого поста.Функция пока доступна только в «полном» режиме отладки, так как использует хук ‘redirect’, отсутствующий в InstantCMS 2.14.1. Скачать обновлённый патч для полного режима можно на странице описания режимов работы отладки
С версии InstantCMS 2.14.2 этот хук добавлен "в коробку", значит перехват редиректов будет работать и в стандартном режиме.
+ Добавил вывод отладочной информации на страницах ошибок 403 (Доступ запрещён) и 404 (Не найдено). Теперь можно легко понять, что вызвало ту или иную ошибку. Работает и в стандартном, и в полном режимах.
+ Добавил вывод отладочной инфы в модальных окнах (настройки виджетов на фронте и в Админке, настройки главной страницы Админки, настройки таблиц, фильтров, порядка категорий и т.п.), кроме окон на JSON-ответах. Также работает и в стандартном, и в полном режимах.
Подробнее про анализ редиректов и ошибок 403/404, и про модальные окна
+ Добавил функцию dbg_table() — накапливает в массив все переданные ей данные и выводит после лога всё сразу в таблицы.
Как и обычные контрольные точки dbg(), табличные доступны во всех режимах отладки.
Подробнее про табличные контрольные точки
+ Добавил предупреждение о наличии на странице контрольных точек dbg() или dbg_table() при выключенной отладке.
+ Добавил управление выводом категорий логов через контрольные точки dbg(). Можно выводить или скрывать нужные типы лога на отдельных участках кода.
Подробнее про использование контрольных точек
+ Добавил сокращённый вид основной таблицы с отладочной информацией. Двойной клик мышкой в любом месте таблицы — переключение между полной и сокращённой таблицами. Вид по-умолчанию задаётся опцией "Полный вид основной таблицы данных отладки" на вкладке "Вид".
+ Ещё раз переделал отступы в блоках вывода данных и результатов. Добавил вертикальные направляющие для отступов — стало проще отслеживать уровни. И теперь корректно переносятся очень длинные строки в массивах. В очень редких случаях при выводе переменных содержащих код яваскрипт оформление лога может быть нарушено, так как нет простого способа гарантированно отличить в выводе var_dump() окончание элемента массива от закрывающей скобки скрипта.
+ Добавил страницу PHPini, закрытую админским доступом (ссылка в Настройках). Иногда бывает нужно посмотреть текущие настройки PHP и его модулей, а копировать на хостинг простой файлик с выводом PHPini, а потом удалять его надоело.
* Панель параметров в "Настройка" стала более компактной — в две колонки.
* Правки по мелочам
Скачать обновление можно в Каталоге
Fatal error: Array and string offset access syntax with curly braces is no longer supported in ****\templates\default\controllers\debugx\backend\settings.tpl.php on line 248
echo $controllers{$dbg_config['filter_template_control']};
Вот захожу я например в галерею видео, нажимаю "добавить ролик", нажимаю "загрузкой файла", он перекидывает на страницу с загрузкой файла. но кнопки "выбрать файл" нет... И тут эта приблудка сообщает дескать в строке такой-то файла такого-то Фатал Эррор, мол идите исправьте.... ?
С загрузкой фото такая же беда, вот сработает как думаете? Обычная отладка ничего не показывает
Но это не волшебный автомат, решающий любые задачи за пользователя.
По сути. Причин описанной Вами ситуации может быть много, а для анализа разных причин нужны разные инструменты. Начните с "Инструментов разработчика" в браузере для выяснения, что происходит с кнопкой в коде страницы. Если источник проблемы окажется на стороне сервера, тогда и "Расширенная отладка" сможет пригодится.