Как создать рубрику «Главное за день» на сайте DLE

Поставил цель, добавить на сайт рубрику с краткими обновлениями актуальных событий. Работаю с DLE 13.1. В итоге получил структурированный блок, который читают каждый день. Без лишнего кода. Без задержек. Ниже, пошаговая инструкция, как это сделать, включая ловушки, которые я прошел.

  1. Создай новую категорию в админке DLE. Назови ее, например, «Главное за день». Убедись, что в настройках категории стоит галочка «Показывать в меню» и «Включить RSS». Это важно, без RSS никто не будет подписываться.
  2. Создай шаблон для рубрики. Зайди в раздел «Шаблоны» → «Шаблоны статей». Создай новый файл, например, main_daily.tpl. В нем, минималистично: только <div class="daily-wrap">, потом <div class="daily-item"> для каждой новости. Никаких вложений. Ты не нужен галереям. Я пробовал, тормозило.
  3. Настрой фильтр новых статей. В коде настройки категории добавь условие: WHERE date >= DATE_SUB(NOW(), INTERVAL 1 DAY). Без этого список будет полным, а не свежим. У меня на старте сортировка была по дате публикации, но из-за кэша дата сбивалась. Проверял на практике: публикую в 8 утра, в 10 все уже отображается. Геймчейн
  4. Добавь автоматический хайлайт. В шаблоне добавь условие: если статья опубликована в предыдущие 3 часа, помечай ее как «новейшая» с классом new-highlight. У меня это сработало: по посещаемости такая статья читается в 2.5 раза чаще. Важный нюанс, в DLE дата в БД хранится в формате YYYY-MM-DD HH:MM:SS, поэтому сравнение нужно делать через DATE_SUB или обращение через strtotime().
  5. Сделай публикацию через cron. На сервере настрой cron-задачу: 0 8,14,20 * * * /usr/bin/php /var/www/site/dle/cron/daily_update.php. Этот скрипт оставляет в базе только 5 последних статей с датой до 23:59. Тысяча статей за месяц, это не для этого блока. Мой блок теперь чище, быстрее загружается, и он не автозаполняется
  6. Проверь индексацию. Перейди в аналитику посещаемости и убедись что блок не уходит в «Other» или «Direct». У меня сначала был поиск по URL: /main-daily/, и его не находили. Поменял на /daily, добавилcanonical. Теперь в Гугле вижу, есть. Статьи из рубрики индексируются на 40% быстрее.

Сначала думал, что это просто про «новости». Ошибся. Главное, не список. Главное, читабельность. Я убрал шрифт 12px, стал использовать 14px, заголовки с отступами. Использовал только три ссылки на поддержку, везде ведут на другие статьи. Никакого «читать далее». Всё в одном блоке. 72% пользователей читают до конца.

При работе с DLE важно не гоняться за фичами. Мне хватило 10 минут в шаблоне, чтобы сделать блок с адаптивностью. max-width: 1000px, margin: 0 auto. Тестил на 360, 768, 1440, все. Мобильные не подпрыгивают.

Типичные ошибки: ставить «новые статьи» без фильтра; редактировать шаблон в админке; не обновлять кэш после изменений. Я два раза ломал структуру, пока не понял: кэш надо сбрасывать вручную через cache/clear.cache.php. Работает на всех версиях.

После месяца запуска, посмотрел метрики. Ежедневный охват вырос на 27%. Те, кто привыкли заходить утром, теперь заходят два раза. Проблема «уже не актуально» решена: статьи удаляются автоматически.

Что дальше: интегрирую уведомления через веб-сокеты. Хоть в DLE это не встроено, но можно. Дошло до 5000 чтений в день. Это реально.