Шаблон в DLE: типичные ошибки и способы их найти
Вёрстка в DLE может ломаться из-за одного пробела в имени файла, неправильного тега или закешированного шаблона. Разбираем ошибки, которые чаще всего встречаются в шаблонах DLE 17.x, и порядок проверки.

В DLE шаблон может выглядеть правильно, но выводить пустую страницу, показывать HTML-код вместо блока или игнорировать последние изменения. Чаще всего причина не в CSS: движок не нашёл файл, тег оказался в неподходящем шаблоне, условие не выполнилось или сервер продолжил отдавать старую версию из кеша. Ниже — практический разбор для DLE 17.x; перед исправлением проверьте точную версию движка и документацию к ней.
Сначала определите, что именно сломалось
Не начинайте с переписывания всего main.tpl. Зафиксируйте симптом: пропал весь сайт, только список новостей, отдельное поле, меню или оформление страницы. От этого зависит место поиска.
| Симптом | Проверять в первую очередь | Типичная причина |
|---|---|---|
| Белая страница или ошибка 500 | Последнее изменение, PHP-логи, синтаксис шаблона | Повреждённый PHP-файл, модуль или конфликт стороннего кода |
| Вместо значения виден тег | Имя тега и место его размещения | Опечатка или тег не поддерживается в этом шаблоне |
| Изменения не видны | Кеш DLE, кеш браузера, CDN | Отдаётся старая копия страницы или CSS |
| Блок не появляется | Условия вывода и права доступа | Не выполняется условие [available] или не подходит тип страницы |
| Страница съехала | HTML-разметку вокруг вставленного блока | Незакрытый тег, дублирующий контейнер или конфликт CSS |
В DLE ошибка шаблона часто выглядит как проблема дизайна. Сначала проверяйте, что движок действительно вывел нужный блок, и только потом открывайте инструменты разработчика.
Ошибка 1. Файл шаблона лежит не там или называется иначе
Основной шаблон сайта обычно находится в папке выбранной темы, а не обязательно в стандартной директории, которую вы открыли первой. При переносе сайта часто остаётся активной другая тема: файлы вы редактируете, но DLE использует соседний каталог.
Проверьте три значения:
- какая тема выбрана в настройках DLE;
- совпадает ли имя каталога с активной темой;
- не отличается ли имя файла регистром букв.
На Linux имена main.tpl и Main.tpl различаются. На локальном компьютере это может быть незаметно, а после загрузки на сервер страница перестанет находить файл или подключать нужный шаблон.
Как проверить
Добавьте временный, безвредный маркер в предполагаемый main.tpl, например короткий текст в HTML-комментарии. Откройте страницу с очисткой кеша. Если маркер не появился в исходном коде страницы, вы редактируете не тот файл либо DLE отдаёт сохранённую копию.
Ошибка 2. Тег написан правильно, но поставлен не в тот шаблон
У DLE есть глобальные шаблоны, шаблоны новостей, комментариев, категорий и отдельных элементов. Тег, который работает в одном контексте, не обязан выводить значение в другом. Например, поле дополнительного значения новости нельзя ожидать в шаблоне, который не формирует конкретную новость.
Перед вставкой тега ответьте на два вопроса:
- какой объект сейчас формирует этот файл: страницу, новость, комментарий или список;
- доступно ли нужное значение на этом этапе вывода.
Если в браузере отображается сам текст вроде {title} или [xfvalue_name], проверьте написание, фигурные скобки и допустимость тега для текущего шаблона. Если тег просто не выводит ничего, проблема чаще связана с пустым значением, условием или контекстом.
Сноска. Контекст шаблона — это набор данных, который DLE передаёт конкретному файлу в момент его обработки. Один и тот же шаблонный синтаксис может вести себя по-разному на главной странице, в категории и внутри полной новости.
Ошибка 3. Условия скрывают блок
Условия DLE вроде [available=main] и [not-available=main] зависят от типа открытой страницы. Блок, помещённый внутрь неподходящего условия, не сломан — он честно не выводится.
Частая ошибка выглядит так: меню нужно показать на всех страницах, кроме главной, но его оборачивают в условие для главной. Или разработчик проверяет категорию по её названию, хотя DLE получает другое значение после переименования категории.
Рабочий порядок проверки
- Временно уберите внешнее условие и оставьте внутри только сам блок. Откройте страницу, где его не было.
- Проверьте главную, страницу категории, короткую и полную новость. Условия могут срабатывать по-разному.
- Верните условие и упростите его до одного проверяемого случая.
- После каждой правки очищайте кеш и проверяйте исходный HTML, а не только внешний вид.
Не складывайте несколько условий в длинную цепочку, пока не убедились, что каждое из них работает отдельно. Такой подход экономит время: вы сразу видите, какое правило исключило блок.
Ошибка 4. DLE показывает старый шаблон
После изменения файла страница может остаться прежней из-за кеша DLE, кеша браузера, прокси или CDN. Особенно часто это происходит с CSS и JavaScript: HTML уже обновился, но браузер продолжает брать старый файл стилей.
Проверяйте изменения в таком порядке:
- откройте страницу в приватном окне;
- обновите её с принудительной загрузкой ресурсов;
- очистите кеш в панели управления DLE, если на сервере включено кеширование;
- проверьте исходный код и вкладку Network в инструментах разработчика;
- если используется CDN, временно проверьте страницу напрямую без его кеша.
Не удаляйте кеш на продакшене после каждой правки без необходимости. При большом сайте это может вызвать одновременную генерацию множества страниц и увеличить нагрузку. Для локальной проверки достаточно убедиться, что в HTML появился новый маркер.
Ошибка 5. HTML-разметка ломает соседние блоки
Если после вставки блока меню уезжает вниз, карточки перестают выстраиваться или пропадает подвал, ищите незакрытые HTML-теги. В шаблонах DLE это часто происходит при копировании фрагмента из конструктора: вместе с нужным блоком переносят закрывающий </div> или дублируют внешний контейнер.
Проверяйте разметку частями. Удалите вставленный блок, убедитесь, что страница снова выглядит нормально, затем верните только внешний контейнер и содержимое по отдельности. В инструментах разработчика найдите первый элемент, у которого структура DOM отличается от ожидаемой. Ошибка обычно находится выше места, где она стала заметна.
Почему CSS не всегда виноват
Если элемент отсутствует в DOM, правило CSS не сможет его показать. Если элемент есть, но имеет display: none, нулевую высоту или перекрывается другим блоком, причина уже на уровне стилей. Разделяйте эти случаи: сначала ищите элемент в HTML, потом проверяйте его CSS.
Ошибка 6. Дополнительное поле новости не выводится
Для дополнительных полей важны точное системное имя поля и наличие значения у конкретной новости. Название, которое видно редактору в админпанели, может отличаться от идентификатора, используемого в шаблоне. Пробелы, кириллица и случайная замена дефиса на подчёркивание приводят к пустому выводу.
Проверьте:
- имя поля в настройках совпадает с именем внутри шаблонного тега;
- поле заполнено именно у открытой новости;
- тег находится в шаблоне краткой или полной новости, а не только в общем каркасе;
- значение не скрывается условием или настройкой показа.
Для диагностики возьмите новость, где поле точно заполнено, и временно выведите его в простом месте без сложной вёрстки. Если значение появилось, проблема в условии или HTML-обёртке, а не в самом поле.
Что ломается первым на рабочем сайте
На тестовом стенде шаблон часто работает, потому что там одна тема, мало новостей и нет кеширующего прокси. На рабочем сайте появляются другие сценарии: мобильная версия, закрытые категории, новости без изображения, длинные заголовки, пользователи без прав администратора.
Перед публикацией изменения откройте минимум:
- главную страницу и страницу категории;
- короткую и полную новость с заполненным дополнительным полем;
- новость без изображения и без значения в дополнительном поле;
- страницу поиска и форму комментариев, если они затронуты изменением;
- сайт в гостевом режиме и под учётной записью пользователя.
Отдельно проверьте адаптивность. Блок, который корректно выглядит на ширине рабочего монитора, может растянуть страницу на мобильном устройстве из-за фиксированной ширины изображения или длинного URL.
Когда шаблонный подход перестаёт подходить
Если вам приходится добавлять десятки условий, копировать один и тот же HTML в несколько файлов или править системные шаблоны после каждого обновления, проблема уже не в одной ошибке. Такой шаблон трудно тестировать и легко сломать при следующем изменении дизайна.
Вынесите повторяющиеся части в подключаемые фрагменты, договоритесь об именовании файлов и храните резервную копию темы до правок. Сторонние плагины подключайте по одному: если шаблон перестал работать после установки расширения, так проще найти источник конфликта.
Что делать дальше
Создайте копию активной темы и заведите короткий чек-лист проверки: активный каталог, имя файла, контекст тега, условия, кеш и HTML-структура. Следующее полезное действие — открыть исходный HTML страницы и сравнить его с ожидаемым результатом: это быстрее, чем угадывать причину по внешнему виду.
Если ошибка появляется только на части страниц, соберите четыре примера: главную, категорию, короткую и полную новость. Сравните, где исчезает блок. Такой набор обычно сразу показывает, связано ли поведение с условием, отсутствующим значением или конкретным шаблоном.
Проверка рекламы на риски: Что в макете вызовет вопросы ФАС: превосходные степени, сравнения, обещания результата, маркировка.
Спросить за 40 ₽Источники: Официальный сайт и документация DataLife Engine
Частые вопросы
Почему изменения в main.tpl не видны сразу?
Что делать, если DLE выводит сам тег вместо значения?
Почему дополнительное поле новости пустое?
Как понять, что блок скрывает условие?
Может ли шаблон вызвать ошибку 500?
Что делать, если у меня другая версия DLE?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.