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

В DLE один неверно выбранный шаблон может изменить не только внешний вид новости, но и структуру всей страницы. Ветка DLE 18.x собирает сайт из файлов темы в каталоге templates/: главный каркас выводит системные элементы, шаблон новости отвечает за карточку материала, а условные блоки включают нужную разметку только в подходящем контексте. Ниже — практическая карта файлов и тегов, с которой можно безопасно менять тему без копирования чужой разметки вслепую.
Как DLE собирает страницу
У темы DLE есть корневой каталог внутри templates/. Обычно в нём лежит папка Default или отдельная папка вашей темы. Название темы выбирается в настройках движка, поэтому правка файла в соседнем каталоге ничего не изменит.
Сборка страницы идёт слоями:
- main.tpl задаёт общий HTML-каркас:
html,head, меню, контейнеры и место для основного содержимого; - shortstory.tpl выводит краткую новость в списке, на главной и в категории;
- fullstory.tpl выводит полную страницу новости;
- navigation.tpl отвечает за постраничную навигацию;
- comments.tpl и addcomments.tpl отвечают за список комментариев и форму отправки;
- остальные файлы обслуживают вход, регистрацию, поиск, опросы, профиль, статические страницы и системные сообщения.
Шаблон не исполняется сам по себе. DLE сначала подставляет значения своих тегов, затем отдаёт браузеру готовый HTML. Поэтому в исходном коде страницы браузера вы увидите заголовок новости, а не {title}.
Главное правило DLE: сначала определите, какой файл формирует нужный участок страницы, и только потом меняйте тег. Попытка исправить всё в
main.tplбыстро превращает тему в набор исключений.
Файлы, которые редактируют чаще всего
| Файл | Что выводит | Типичная задача |
|---|---|---|
main.tpl | Общий каркас страницы | Подключить шапку, подвал, контейнер и системные теги |
shortstory.tpl | Анонс новости | Изменить карточку в ленте или категории |
fullstory.tpl | Полный текст новости | Настроить страницу материала, метаданные и кнопки |
navigation.tpl | Переходы между страницами | Оформить ссылки «назад», «вперёд» и номера страниц |
comments.tpl | Один комментарий или блок комментариев | Изменить автора, дату и текст комментария |
addcomments.tpl | Форма комментария | Переставить поля, подсказки и кнопку отправки |
static.tpl | Статическую страницу | Задать отдельное оформление для страницы «О компании» |
Названия отдельных файлов и доступные в них условные блоки могут отличаться между редакциями и готовыми темами. Если файла нет в вашей теме, DLE может использовать встроенный вариант или другой шаблонный файл.
Главные теги в main.tpl
В main.tpl не нужно вручную вставлять содержимое каждой новости. Для этого есть системные теги.
<!doctype html>
<html lang="ru">
<head>
{headers}
{metatags}
{jsfiles}
<link rel="stylesheet" href="{THEME}/css/style.css">
</head>
<body>
<header>Шапка сайта</header>
<main>
{info}
{content}
</main>
{AJAX}
</body>
</html>
Это фрагмент для DLE 18.x, а не готовый файл темы: у конкретного шаблона могут быть собственные контейнеры и подключения.
{content}— основное содержимое текущей страницы. Это новости, список категорий, поиск или другой экран, который выбрал движок;{info}— системные информационные сообщения, например уведомление об ошибке или результате действия;{headers}— служебные элементы внутри<head>;{metatags}— метатеги страницы, сформированные движком;{jsfiles}— служебные JavaScript-подключения DLE;{THEME}— путь к активной папке темы;{AJAX}— служебная разметка и данные, необходимые AJAX-функциям движка.
Удаление {content} обычно оставляет сайт с шапкой и подвалом без основного содержимого. Удаление {headers}, {metatags} или {jsfiles} может сломать метаданные, системные скрипты и отдельные интерактивные функции.
Теги новости: короткая и полная версия
Короткая новость и полная новость — разные контексты. Тег, который логично выглядит в карточке списка, не всегда должен находиться в шаблоне полной страницы.
<article class="story">
<h2>{title}</h2>
<div class="story-meta">
{date} · {author} · {comments-num}
</div>
<div class="story-text">{short-story}</div>
[full-link]<a href="{full-link}">Читать полностью</a>[/full-link]
</article>
В таком фрагменте используются распространённые теги новостей:
{title}— заголовок материала;{short-story}— краткое описание новости;{full-story}— полный текст на странице материала;{date}— дата публикации в формате, заданном настройками DLE;{author}— имя автора;{category}— категория новости;{comments-num}— количество комментариев;{full-link}— ссылка на полную новость.
Конструкции вида [full-link]...[/full-link] — условные блоки. Их содержимое показывается, когда для новости доступна ссылка на полную версию. Условия DLE нельзя заменять обычными HTML-комментариями: браузер не понимает синтаксис движка, его обрабатывает сам DLE.
Что ставить в shortstory.tpl
В кратком шаблоне оставляйте только то, что нужно для списка: заголовок, превью, дату, автора, категорию и ссылку на полный материал. Большой блок {full-story} здесь не нужен: он увеличит страницу и может привести к повторному выводу полного текста.
Что ставить в fullstory.tpl
В полной версии обычно используются {full-story}, заголовок, метаданные, навигация по новостям и блок комментариев. Если добавить {short-story} рядом с полным текстом, анонс продублируется. Это не ошибка DLE, а результат того, что шаблон явно попросил вывести оба поля.
Сноска. Условный блок — участок шаблона между парными маркерами DLE, например [available=showfull]...[/available]. Он выводится только при выполнении указанного условия; это не стандартный HTML и не CSS.
Условия и вложенные шаблоны
Условные теги нужны, когда один файл обслуживает несколько экранов. Например, часть разметки можно показать только на странице полной новости, в определённой категории или авторизованному пользователю. Перед использованием проверьте синтаксис именно для вашей версии и контекста в документации DLE: доступность условий зависит от версии и места вставки.
[available=showfull]
<aside class="story-tools">Инструменты новости</aside>
[/available]
[not-available=showfull]
<aside class="story-tools">Инструменты списка</aside>
[/not-available]
Вложенные шаблоны позволяют не дублировать разметку. Например, меню или блок авторизации можно вынести в отдельный файл и подключать штатным механизмом шаблонов DLE. Точный синтаксис подключения зависит от редакции и настроек, поэтому не переносите строку из чужой темы без сверки с документацией вашей версии.
Что ломается чаще всего
Правится не активная тема
Файл изменён, но сайт не меняется. Проверьте выбранную тему в админ-панели и путь к файлу: templates/имя_активной_темы/shortstory.tpl. Это самая частая причина «неработающей» правки.
Тег оказался не в том шаблоне
{full-story} в shortstory.tpl не превращает карточку в полную страницу. Сначала определите экран по URL и внешнему виду, затем найдите его файл в теме.
Кеш скрывает результат
DLE, PHP, серверный кеш и CDN могут отдавать старую версию HTML. После изменения очистите кеш движка, обновите страницу без кеша в браузере и проверьте исходный HTML. Если в нём остался старый тег или старая разметка, запрос не дошёл до изменённого файла.
Сломана условная конструкция
Пропущенный закрывающий маркер вроде [/available] может вывести лишнюю разметку или нарушить структуру страницы. Временно уберите новый условный блок и верните его с минимальным содержимым, затем добавляйте HTML частями.
HTML валиден отдельно, но не в DLE
Кавычки, квадратные скобки и фигурные скобки могут одновременно использоваться HTML, CSS и синтаксисом DLE. После правки смотрите не только визуальный результат, но и консоль браузера, исходный HTML и дерево элементов в DevTools.
Как менять шаблон без лишнего риска
- Сделайте копию всей активной папки темы. Не начинайте с редактирования файлов на рабочем сайте без резервной версии.
- Определите экран: список новостей, полная новость, комментарий, поиск или системное сообщение.
- Найдите файл, который отвечает за этот экран, и сохраните исходный HTML-фрагмент перед изменением.
- Внесите одну небольшую правку, очистите кеш и проверьте страницу гостем и авторизованным пользователем.
- Проверьте мобильную ширину, страницу без новостей, длинный заголовок и материал без комментариев.
Такой порядок важнее красивой структуры файла. Если одновременно менять main.tpl, shortstory.tpl и CSS, найти причину сбоя будет значительно сложнее.
Что сделать дальше
Начните с копии активной темы и составьте для себя карту: какой URL использует main.tpl, где начинается список, где выводится одна новость и какой файл отвечает за комментарий. Затем проверьте тему на трёх сценариях — главная, полная новость и поиск — и сохраните исходный HTML каждой страницы. После этого можно выносить повторяющиеся блоки и менять CSS, не смешивая структуру DLE с оформлением.
Создатель презентаций: Структура и текст каждого слайда: заголовки-утверждения, одна мысль на слайд, заметки докладчику.
Спросить за 150 ₽Источники: DataLife Engine — официальный сайт и документация
Частые вопросы
Где находится шаблон DLE?
Почему я изменил shortstory.tpl, но сайт остался прежним?
Чем отличаются shortstory.tpl и fullstory.tpl?
Можно ли вставить {full-story} в shortstory.tpl?
Что делать, если тег DLE выводится текстом, а не обрабатывается?
Что изменится, если у меня другая версия DLE?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.