====== Отладка шаблонов ====== ===== Ошибки компиляции шаблонов ===== Шаблонная система способна с большинстве случаев самостоятельно находить многие ошибки в шаблонах. Какие ошибки считаются фатальными при компиляции шаблонов: * Несбланансированность шаблонов, то есть наличие открывающего тега и отсутствие соответствующего закрывающего. * Отсутствие обязательных атрибутов в тегах * Правильную вложенность тегов, например, нельзя использовать вне тега * Дублирование атрибута id, то есть наличие друх тегов с одиниковыми значениями атрибута id. Это правило применяется к дочерним элементам одного родительского тега, который распознается как WACT-тег. * Неправильные имена файлов с тегах [[.tags:core_tags:core_include_tag|]] и [[.tags:core_tags:core_wrap_tag|]]. * Использование несуществующих фильтров в выражениях. * прочие. В случае ошибки шаблонизатор сгенерирует ошибку с указанием файла, тега, строки, где есть ошибка, и ее описания. ===== Словари тегов и фильтров ===== Если вам кажется, что шаблон написан верно, однако что-то выводится неправильно, проверьте, а отработали ли ваши теги. Быть может быть по какой-либо причине WACT еще не нашел описание тега. Дело в том, что WACT не будет "ругаться", если в шаблоне ему встретится незнакомый тег - он его воспримет как обычный HTML тег и оставит после компиляции "как есть". Иногда причина в том, что словари тегов (и других элементов шаблонов) кешируются. Обычно кеш словарей лежит в папке /var/compiled вашего приложения. Попробуйте удалить кеш и перекомпилировать шаблон еще раз. ===== Теги, полезные при отладке ===== WACT содержит теги, которые могут быть полезными при отладке шаблонов: * [[.tags:dev_tags:dev_source_tag|]] - выводит кусок скомпилированного кода куска шаблона, заключенного в рамки тега. Удобен при разработке новых тегов. * [[.tags:dev_tags:dev_data_space_tag|]] - выводит содержимое контейнера данных, в котором находится тег. Позволяет видеть, какие переменные есть в контейнере данных. Правда от этого тега пока не слишком много пользы в случае, когда вы выводите данные из контейнера данных, источником для которого является база данных. В этом случае отображается все сразу - объект подключения, параметры и многое другое.