<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:georss="http://www.georss.org/georss">
<channel>
<title> Всё по системе DLE - Максимум веб информации</title>
<link>https://web-maxs.ru/</link>
<language>ru</language><item>
<title>Настройка Google Search Console для CMS DLE 21: пошаговое руководство</title>
<link>https://web-maxs.ru/dle/useful_tips/400-nastrojka-google-search-console-dlja-cms-dle-21-poshagovoe-rukovodstvo.html</link>
<pdalink>https://web-maxs.ru/dle/useful_tips/400-nastrojka-google-search-console-dlja-cms-dle-21-poshagovoe-rukovodstvo.html</pdalink>
<guid>400</guid>
<pubDate>Thu, 15 Oct 2026 10:02:56 +0400</pubDate>
<category>native-yes</category>

<content:encoded><![CDATA[<p>Подключение сайта на DataLife Engine 21 к Google Search Console — базовый этап SEO-продвижения, без которого поисковик может неделями не замечать новые страницы. Связка «DLE → GSC» сводится к четырём задачам: подтвердить права на сайт, проверить robots.txt, сгенерировать карту сайта и отправить её в Google. Разберём каждый шаг так, чтобы после прочтения вы могли сразу всё настроить самостоятельно.</p> <h2><span style="color:#236fa1;">Зачем сайту на DLE нужна Search Console</span></h2> <p>Search Console — бесплатный сервис Google, который показывает, как поисковик видит ваш ресурс: какие страницы проиндексированы, по каким запросам сайт показывается в выдаче и где возникают ошибки сканирования. Без него продвижение ведётся вслепую: вы не узнаете, что карта сайта отдаёт ошибку или что половина категорий выпала из индекса.</p> <p>Для сайтов на DLE это особенно актуально — движок генерирует множество технических страниц (пагинация, версии для печати, календари), и без контроля Search Console часть краулингового бюджета уходит впустую.</p> <h2><span style="color:#236fa1;">Шаг 1. Добавляем сайт в Search Console</span></h2> <p>Перейдите на search.google.com/search-console и нажмите кнопку «Добавить ресурс». Google предложит два типа ресурсов:</p> <ul> <li><b>Доменный ресурс</b> — охватывает все поддомены и оба протокола (HTTP/HTTPS). Для подтверждения нужны права на DNS-записи домена.</li> <li><b>Ресурс с префиксом URL</b> — подтверждается проще, файлом или метатегом, но охватывает только один протокол и один вариант адреса.</li> </ul> <p>Для большинства сайтов на DLE достаточно префикса: укажите полный адрес вида <code><a href="https://site.ru">https://site.ru</a></code>. Если у вас есть доступ к DNS-записям, предпочтительнее доменный ресурс — он не потребует переделок при смене протокола или переезде.</p> <h2><span style="color:#236fa1;">Шаг 2. Подтверждаем права на сайт</span></h2> <p>Для DataLife Engine удобнее всего два способа.</p> <h3><span style="color:#236fa1;">Способ 1: HTML-файл</span></h3> <p>Скачайте файл <code>googleXXXX.html</code> из консоли и загрузите его в корень сайта по FTP — в ту же директорию, где лежат <code>index.php</code>, <code>engine/</code> и <code>templates/</code>. Движок трогать не нужно: файл отдаётся сервером напрямую, минуя CMS.</p> <h3><span style="color:#236fa1;">Способ 2: метатег в шаблоне</span></h3> <p>Скопируйте строку вида <code>&lt;meta name="google-site-verification" content="..."&gt;</code> и вставьте её в шаблон <code>/templates/ваша-тема/main.tpl</code> внутри тега <code>&lt;head&gt;</code>, рядом с выводом <code>&#123;headers}</code>. Затем:</p> <ol> <li>Сохраните изменения в файле шаблона.</li> <li>Очистите кеш в админпанели: «Настройки» → «Очистка кеша».</li> <li>Вернитесь в Search Console и нажмите «Проверить».</li> </ol> <p>Важно: метатег нельзя удалять после подтверждения. Google периодически перепроверяет права, и без тега сайт потеряет доступ к данным консоли.</p> <h2><span style="color:#236fa1;">Шаг 3. Проверяем и настраиваем robots.txt</span></h2> <p>В актуальных сборках DLE файл robots.txt с корректными настройками по умолчанию уже лежит в корне сайта. Базовый рабочий вариант выглядит так:</p> <div> <div> <div> <pre><code class="language-text">User-agent: * Disallow: /engine/ Allow: /engine/classes/js/ Allow: /engine/classes/min/index.php Allow: /engine/data/emoticons/ Sitemap: <a href="https://site.ru/sitemap.xml" rel="external noopener">https://site.ru/sitemap.xml</a> </code></pre> </div> </div> <p>Директива закрывает служебный каталог <code>engine/</code>, но оставляет роботу доступ к скриптам, необходимым для корректного рендеринга. Строку <code>Sitemap:</code> замените на свой домен.</p> <p>Файл правится напрямую в корне — через FTP или файловый менеджер хостинга, а не через шаблоны движка. После правки откройте раздел «Файлы robots.txt» в Search Console: консоль покажет итоговый файл и подсветит, не заблокировали ли вы случайно важные разделы.</p> <h2><span style="color:#236fa1;">Шаг 4. Генерируем sitemap.xml средствами DLE</span></h2> <p>DLE умеет создавать карту сайта без сторонних модулей. В админпанели откройте <b>«Другие разделы» → «Карта сайта для Google и Yandex»</b>.</p> <p>Порядок действий:</p> <ol> <li>Задайте приоритеты для категорий, новостей и статических страниц — по ним робот понимает, какие разделы сканировать в первую очередь. Категориям обычно ставят приоритет выше, чем отдельным новостям.</li> <li>Запустите генерацию.</li> <li>Убедитесь, что файл открывается в браузере по адресу <code><a href="https://site.ru/sitemap.xml">https://site.ru/sitemap.xml</a></code>.</li> </ol> <div style="border:1px solid rgb(255,152,0);padding:0.78em;background-color:#fff3e0;color:#333333;box-shadow:rgba(126,142,177,0.2) 0px 0.35em 0.7em;" class="noncontenteditable dle-warning-block"> <div class="contenteditable"> <h3><b><span style="color:#34495e;">Частая ошибка: конфликт двух карт сайта</span></b></h3> <p><b>На некоторых хостингах (например, в типовых сборках Beget) sitemap генерируется на стороне сервера. Если включить и серверную, и встроенную генерацию DLE, файлы начнут затирать друг друга, а консоль будет показывать ошибку чтения. Решение: оставьте один генератор — если хостинг уже отдаёт рабочую карту, отключите встроенную в настройках DLE.</b></p> </div> </div> <h2><span style="color:#236fa1;">Шаг 5. Отправляем карту и просим индексацию</span></h2> <p><span style="color:#34495e;font-size:1.1em;"><b>Когда sitemap.xml стабильно открывается:</b></span></p> <ol> <li>В Search Console откройте раздел <b>«Файлы Sitemap»</b>.</li> <li>Введите <code>sitemap.xml</code> и нажмите «Отправить».</li> <li>Дождитесь статуса «Успешно» — обычно это занимает от нескольких минут до пары суток.</li> </ol> <p>Затем через инструмент <b>«Проверка URL»</b> отправьте на индексацию главную страницу и 2–3 ключевые категории. Это не гарантирует мгновенный обход, но заметно ускоряет первое знакомство Google с сайтом.</p> <h2><span style="color:#236fa1;">Шаг 6. SEO-настройки самого DLE 21</span></h2> <p><span style="font-size:1.1em;color:#34495e;"><b>Search Console показывает картину, но базу задаёт движок. Проверьте в админпанели:</b></span></p> <ul> <li><b>ЧПУ и HTTPS.</b> В «Настройки системы → Общие» должны быть включены человекопонятные URL, а сайт — открываться по HTTPS с единым вариантом домена (с www или без). Редирект настраивается в <code>.htaccess</code> или на уровне хостинга.</li> <li><b>Шаблоны метатегов.</b> В разделе «Настройки системы → Оптимизация SEO» пропишите шаблоны title и description. Без них Google подбирает сниппеты из текста сам, и в выдаче появляются непредсказуемые заголовки.</li> <li><b>Дубли страниц.</b> Пагинация категорий и страницы без уникальных описаний — типичная слабость DLE-сайтов. Массовые дубли отвлекают робота от основного контента и могут привести к понижению позиций.</li> </ul> <h2><span style="color:#236fa1;">Что смотреть в консоли после настройки</span></h2> <p>Первые две недели данные будут поступать скудно — это нормально для нового ресурса. Дальше следите за тремя отчётами:</p> <ul> <li><b>«Страницы»</b> — сколько URL проиндексировано и с какими причинами выброшено из индекса.</li> <li><b>«Эффективность»</b> — запросы, показы и клики; отсюда берутся темы для нового контента.</li> <li><b>«Проверка URL»</b> — точечный диагноз проблемных страниц.</li> </ul> <div style="color:#333333;border:1px solid rgb(0,137,123);padding:0.78em;background-color:#e0f2f1;box-shadow:rgba(126,142,177,0.2) 0px 0.35em 0.7em;" class="noncontenteditable dle-information-block"> <div class="contenteditable"> <p><b>Типичные первые ошибки: «исключено robots.txt» лечится правкой директив, а «найдено, не проиндексировано» — усилением контента и перелинковки.</b></p> </div> </div> <h2><span style="color:#236fa1;">Частые вопросы</span></h2> <p><b>Сколько ждать индексации после отправки sitemap?</b> Первые страницы обычно попадают в индекс за 2–7 дней, полная индексация крупного сайта занимает 2–4 недели.</p> <p><b>Нужен ли отдельный robots.txt для Яндекса?</b> Нет — общие директивы для всех роботов прописываются в блоке <code>User-agent: *</code>. Если Яндексу нужны особые правила, добавьте отдельный блок <code>User-agent: Yandex</code> после основного.</p> <p><b>GSC показывает 0 страниц в индексе. Что делать?</b> Проверьте, не стоит ли запрет индексации в настройках DLE, не отдаёт ли сервер код 404/500 на страницы и совпадает ли адрес в консоли с реальным протоколом сайта.</p> <hr> <p><b>Итог.</b> Настройка Search Console для DLE 21 занимает около часа: подтверждение прав, проверка robots.txt, генерация карты и отправка на индексацию. Зато после этого вы получаете прямой канал обратной связи от Google — и дальше работаете с индексацией на основе данных, а не догадок.</p> </div>]]></content:encoded>
</item><item>
<title>Оптимизация attachment.tpl в DLE: внедрение окна загрузки с таймером ожидания и монетизацией</title>
<link>https://web-maxs.ru/dle/398-optimizacija-attachmenttpl-v-dle-vnedrenie-okna-zagruzki-s-tajmerom-ozhidanija-i-monetizaciej.html</link>
<pdalink>https://web-maxs.ru/dle/398-optimizacija-attachmenttpl-v-dle-vnedrenie-okna-zagruzki-s-tajmerom-ozhidanija-i-monetizaciej.html</pdalink>
<guid>398</guid>
<pubDate>Mon, 05 Oct 2026 13:19:35 +0400</pubDate>
<category>native-yes</category>

<enclosure url="https://web-maxs.ru/uploads/posts/2026-10/fajl-attachment_dle.webp" type="image/webp" />
<content:encoded><![CDATA[<p>Стандартный вывод прикрепленных файлов в CMS DataLife Engine ограничивается простой текстовой ссылкой с объемом файла и числом скачиваний.</p> <p>Замена стандартного шаблона <code>attachment.tpl</code> на интерактивное модальное окно с обратным отсчетом позволяет одновременно улучшить поведенческие факторы сайта (увеличить глубину просмотра и время удержания аудитории), повысить конверсию рекламных блоков и защитить прямые ссылки на сервере.</p> <h2><span style="color:#236fa1;">Ключевые преимущества решения</span></h2> <ul> <li> <p><b>Рост времени на странице (Time on Page):</b> Задержка перед отдачей ссылки удерживает пользователя на странице минимум на 15–20 секунд, положительно влияя на поведенческие метрики в Яндекс и Google.</p> </li> <li> <p><b>Встроенное место под монетизацию:</b> Внутри модального окна предусмотрен адаптивный контейнер под баннеры, тизерные сети или виджеты партнерских программ, которые получают 100% фокус внимания пользователя.</p> </li> <li> <p><b>Информативная карточка файла:</b> Посетителю выводятся ключевые метаданные — название, точный размер и число загрузок, что повышает доверие перед кликом.</p> </li> <li> <p><b>Корректная обработка прав доступа:</b> Сохранена нативная фильтрация через DLE-теги <code>[allow-download]</code> и <code>[not-allow-download]</code> для разграничения прав гостей и зарегистрированных групп.</p> </li> <li> <p><b>Независимость от версий CMS:</b> Код полностью совместим с линейками DataLife Engine от 13.x до 18.x и 20.x.</p> </li> </ul> <h2><span style="color:#236fa1;">Архитектура и разбор кода шаблона</span></h2> <p>Логика модификации базируется на связке встроенных тегов DLE, нативного jаvascript и библиотеки jQuery UI Dialog.</p> <h3><span style="color:#236fa1;">1. Модуль контроля доступа</span></h3> <p>Шаблон разделен на два взаимоисключающих состояния:</p> <ul> <li> <p><code>[allow-download] ... [/allow-download]</code> — формирует кнопку-триггер и скрытый контейнер <code>#DownLoadWindow</code>, доступный группам пользователей с разрешением на скачивание.</p> </li> <li> <p><code>[not-allow-download] ... [/not-allow-download]</code> — выводит стилизованное системное оповещение о блокировке для гостей или пользователей с ограниченными правами.</p> </li> </ul> <h3>2. <span style="color:#236fa1;">Скрипт таймера и модального окна</span></h3> <p><span style="color:#236fa1;"><img src="https://web-maxs.ru/uploads/posts/2026-10/fajl-attachment_dle.webp" alt="Оптимизация attachment" style="display:block;margin-left:auto;margin-right:auto;"><br></span></p> <p>Вместо мгновенного перехода по ссылке <code>{link}</code> событие перехватывается скриптом:</p> <ul> <li> <p><b>Запуск диалога:</b> Метод <code>$.fn.dialog</code> инициализирует центрированное окно с адаптивным расчетом ширины <code>Math.min(490, $(window).width() - 32)</code>.</p> </li> <li> <p><b>Синхронизация прогресса:</b> Константа <code>TOTAL_TIME = 20</code> задает длительность ожидания. Каждую секунду обновляются текстовый счетчик <code>#countdown-timer</code> и ширина индикатора <code>#countdown-progress-bar</code>.</p> </li> <li> <p><b>Переключение состояний:</b> По завершении интервала блок ожидания <code>#appearing-element-fadca-before</code> получает служебный класс <code>hidden</code>, а кнопка прямой загрузки <code>#appearing-element-fadca-after</code> отображается с анимацией плавного появления <code>fade-in</code>.</p> </li> <li> <p><b>Сброс при закрытии:</b> Если пользователь закрывает диалог раньше времени, функция <code>resetCountdown()</code> очищает <code>setInterval</code>, возвращая таймер в исходное состояние.</p> </li> </ul> <h3>3. <span style="color:#236fa1;">Информационные теги движка</span></h3> <p>Внутри карточки файла используются штатные переменные DLE:</p> <ul> <li> <p><code>{name}</code> — оригинальное имя файла;</p> </li> <li> <p><code>[{size}]</code> — автоматически форматированный вес архива/документа (КБ/МБ);</p> </li> <li> <p><code>{count}</code> — счетчик уникальных обращений к файлу;</p> </li> <li> <p><code>{link}</code> — ссылка на системный обработчик скачивания (<code>/engine/download.php?id=...</code>).</p> </li> </ul> <h2><span style="color:#236fa1;">Пошаговая инструкция по внедрению в шаблон</span></h2> <h3>Шаг 1. <span style="color:#236fa1;">Проверка библиотек</span></h3> <p>Убедитесь, что в файле <code>main.tpl</code> вашей темы подключены jQuery и скрипты всплывающих окон DLE (jQuery UI). В современных версиях движка тег <code>&#123;jsfiles}</code> подключает их автоматически.</p> <h3>Шаг 2. <span style="color:#236fa1;">Размещение файла</span></h3> <ol start="1"> <li> <p>Перейдите по FTP или через файловый менеджер панели хостинга в директорию: <code>/templates/ИМЯ_ВАШЕГО_ШАБЛОНА/</code></p> </li> <li> <p>Откройте файл <code>attachment.tpl</code> (если его нет — создайте).</p> </li> <li> <p>Полностью замените его содержимое на разработанный скрипт с разметкой и CSS-стилями.</p> </li> <li> <p>Сохраните изменения в кодировке <b>UTF-8 без BOM</b>.</p> </li> </ol> <h3>Шаг 3. <span style="color:#236fa1;">Настройка параметров</span></h3> <ul> <li> <p><b>Изменение времени ожидания:</b> Чтобы изменить тайминг, найдите в начале скрипта строку <code>const TOTAL_TIME = 20;</code> и укажите желаемое количество секунд (например, <code>10</code> или <code>15</code>).</p> </li> <li> <p><b>Интеграция рекламы:</b> Замените содержимое блока <code>.cyber-ad-box</code> (или <code>.dl-ad-container</code>) кодом своего рекламного баннера (РСЯ, Google AdSense, реферальный баннер или тизерная сеть).</p> </li> </ul> <h3>Шаг 4. <span style="color:#236fa1;">Очистка системного кэша</span></h3> <p>После сохранения файла зайдите в панель управления DLE и нажмите кнопку <b>«Очистить кэш»</b>, чтобы движок пересобрал шаблоны страниц.</p> <h2><span style="color:#236fa1;">Рекомендации по SEO и юзабилити (UX)</span></h2> <ul> <li> <p><b>Не завышайте время обратного отсчета:</b> Оптимальный интервал — от 10 до 20 секунд. Таймер дольше 30 секунд провоцирует закрытие вкладки и увеличивает показатель отказов (Bounce Rate).</p> </li> <li> <p><b>Мобильная адаптивность:</b> Прописанное ограничение ширины <code>$(window).width() - 32</code> гарантирует, что на смартфонах с экранами 360–400px окно не вызовет горизонтальный скролл сайта.</p> </li> <li> <p><b>Четкий Call-to-Action:</b> Финальная ссылка скачивания должна контрастно выделяться на фоне окна, не вводя пользователя в заблуждение ложными кликами.</p> </li> <li> <p><b>Асинхронность рекламы:</b> Всегда используйте атрибут <code>async</code> или <code>defer</code> при загрузке внешних рекламных скриптов внутри диалога, чтобы задержка ответа сторонних серверов не замораживала работу таймера.</p> </li> </ul>]]></content:encoded>
</item><item>
<title>Создаем функциональный модуль курсов валют для DLE</title>
<link>https://web-maxs.ru/dle/module/396-sozdaem-funkcionalnyj-modul-kursov-valjut-dlja-dle.html</link>
<pdalink>https://web-maxs.ru/dle/module/396-sozdaem-funkcionalnyj-modul-kursov-valjut-dlja-dle.html</pdalink>
<guid>396</guid>
<pubDate>Sun, 06 Sep 2026 21:44:23 +0400</pubDate>
<category>native-yes</category>

<content:encoded><![CDATA[<p>Наличие актуальной финансовой информации — отличный способ повысить <b>поведенческие факторы</b> на вашем сайте. Пользователи часто ищут актуальные котировки доллара, евро или юаня. В этой статье мы разработаем собственный <b>виджет</b> для <b>DataLife Engine (DLE)</b>, который не только выводит данные от <b>ЦБ РФ</b>, но и показывает <b>индикаторы тренда</b> (стрелочки вверх/вниз), сравнивая показатели с предыдущим днем.</p> <h2><span style="color:#236fa1;">Почему стоит использовать самописный скрипт, а не сторонние плагины?</span></h2> <p>Многие вебмастера устанавливают громоздкие сторонние решения или используют iframe-вставки, которые замедляют загрузку страницы. Наш <b>PHP-обработчик</b> работает иначе:</p> <ol start="1"> <li> <p><b>Отсутствие нагрузки на базу данных:</b> Скрипт не делает лишних SQL-запросов.</p> </li> <li> <p><b>Агрессивное кэширование:</b> Данные скачиваются всего один раз в час и сохраняются в локальный <code>.tmp</code> файл на сервере.</p> </li> <li> <p><b>Использование JSON-формата:</b> Мы будем использовать легкий <b>API-шлюз</b> <code>cbr-xml-daily.ru</code>, который автоматически рассчитывает разницу курсов за вчера и сегодня.</p> </li> </ol> <h2><span style="color:#236fa1;">Пошаговая инструкция по установке модуля</span></h2> <h3>Шаг 1. Пишем PHP-логику (бэкенд)</h3> <p>Сначала нам нужно создать файл, который будет отвечать за <b>парсинг</b> и математические расчеты. Создайте файл <code>currency.php</code> и загрузите его на ваш сервер в директорию <code>/engine/modules/</code>.</p> <pre class="language-markup"><code>&lt;?php /* Модуль курсов валют с индикаторами для DLE */ if (!defined('DATALIFEENGINE')) { header("HTTP/1.1 403 Forbidden"); header('Location: ../../'); die("Hacking attempt!"); } $cache_time = 3600; // Кэширование на 3600 секунд (1 час) $cache_file = ENGINE_DIR . '/cache/currency_json.tmp'; $currency_data = false; // Проверяем валидность кэша if (file_exists($cache_file) &amp;&amp; (time() - filemtime($cache_file) &lt; $cache_time)) { $currency_data = json_decode(file_get_contents($cache_file), true); } else { // Получаем данные через API $json_data = @file_get_contents('https://www.cbr-xml-daily.ru/daily_json.js'); if ($json_data) { $data = json_decode($json_data, true); if (isset($data['Valute'])) { $currency_data = array(); // Массив необходимых котировок $currencies = array('USD', 'EUR', 'CNY', 'KZT'); foreach ($currencies as $code) { if (isset($data['Valute'][$code])) { $nominal = (int)$data['Valute'][$code]['Nominal']; $val = $data['Valute'][$code]['Value'] / $nominal; $prev = $data['Valute'][$code]['Previous'] / $nominal; $diff = $val - $prev; // Вычисляем направление тренда if ($diff &gt; 0) { $trend = '▲'; $class = 'up'; } elseif ($diff &lt; 0) { $trend = '▼'; $class = 'down'; } else { $trend = '▬'; $class = 'flat'; } $currency_data[$code] = array( 'value' =&gt; number_format($val, 2, '.', ''), 'diff' =&gt; number_format(abs($diff), 2, '.', ''), 'trend' =&gt; $trend, 'class' =&gt; $class ); } } if (!empty($currency_data)) { file_put_contents($cache_file, json_encode($currency_data)); } } } } // Интеграция с шаблонизатором DLE if ($currency_data) { $tpl-&gt;load_template('currency.tpl'); foreach (array('USD', 'EUR', 'CNY', 'KZT') as $code) { $lower_code = strtolower($code); $cd = $currency_data[$code] ?? array('value' =&gt; '—', 'diff' =&gt; '', 'trend' =&gt; '', 'class' =&gt; 'flat'); $tpl-&gt;set('{'.$lower_code.'}', $cd['value']); $tpl-&gt;set('{'.$lower_code.'_diff}', $cd['diff']); $tpl-&gt;set('{'.$lower_code.'_trend}', $cd['trend']); $tpl-&gt;set('{'.$lower_code.'_class}', $cd['class']); } $tpl-&gt;compile('currency_module'); $tpl-&gt;clear(); echo $tpl-&gt;result['currency_module']; } ?&gt;</code></pre> <div style="color:#333333;border:1px solid rgb(0,137,123);padding:0.78em;background-color:#e0f2f1;box-shadow:rgba(126,142,177,0.2) 0px 0.35em 0.7em;" class="noncontenteditable dle-information-block"> <div class="contenteditable"> <h3>Важные нюансы</h3> <ul> <li> <p><b>Как добавить другие валюты?</b> В файле <code>currency.php</code> найдите строчку <code>array('USD', 'EUR', 'CNY', 'KZT')</code> и добавьте туда буквенный код нужной валюты (например, <code>BYN</code> для белорусского рубля). Затем в <code>currency.tpl</code> добавьте вывод переменной, прописав ей тег в PHP-файле по аналогии с имеющимися.</p> </li> <li> <p><b>Очистка кэша:</b> При первом запуске или внесении изменений в код PHP, обязательно очистите кэш сайта в админ-панели DLE, чтобы удалить старый файл <code>currency_cbr.tmp</code>.</p> </li> </ul> </div> </div> <h3><span style="color:#236fa1;">Шаг 2. Настройка вывода (фронтенд)</span></h3> <p>Теперь настроим визуальную часть. В папке вашей активной темы (например, <code>/templates/Default/</code>) создайте файл <code>currency.tpl</code>. Здесь мы используем внутренние <b>теги шаблонизатора</b> для вывода переменных.</p> <pre class="language-markup"><code>&lt;style&gt; .curr-up { color: #e74c3c; font-size: 0.85em; font-weight: bold; } .curr-down { color: #27ae60; font-size: 0.85em; font-weight: bold; } .curr-flat { color: #95a5a6; font-size: 0.85em; font-weight: bold; } &lt;/style&gt; &lt;div class="currency-widget" style="background: #f9f9f9; padding: 15px; border-radius: 8px;"&gt; &lt;h4&gt;Курсы валют ЦБ РФ&lt;/h4&gt; &lt;ul style="list-style: none; padding: 0;"&gt; &lt;li&gt;&lt;b style="color: #27ae60;"&gt;$&lt;/b&gt; USD: {usd} ₽ &lt;span class="curr-{usd_class}"&gt;{usd_trend} {usd_diff}&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;b style="color: #2980b9;"&gt;€&lt;/b&gt; EUR: {eur} ₽ &lt;span class="curr-{eur_class}"&gt;{eur_trend} {eur_diff}&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;b style="color: #c0392b;"&gt;¥&lt;/b&gt; CNY: {cny} ₽ &lt;span class="curr-{cny_class}"&gt;{cny_trend} {cny_diff}&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;b style="color: #f39c12;"&gt;₸&lt;/b&gt; KZT: {kzt} ₽ &lt;span class="curr-{kzt_class}"&gt;{kzt_trend} {kzt_diff}&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;/div&gt;</code></pre> <p><i>Секрет юзабилити:</i> Красный цвет для роста интуитивно понятен в РФ, так как означает ослабление национальной валюты (рубля).</p> <h3><span style="color:#236fa1;">Шаг 3. Подключение виджета в дизайн сайта</span></h3> <p>Откройте основной файл вашего дизайна <code>main.tpl</code>. Найдите подходящее место (обычно это сайдбар — блок <code>sidebar</code>) и вставьте <b>строку подключения</b>:</p> <pre class="language-markup"><code>&#123;include file="engine/modules/currency.php"}</code></pre> <p>После этого обязательно зайдите в админ-панель вашей <b>CMS</b> и выполните <b>очистку кэша</b>.</p> <h2><span style="color:#34495e;">Итоги</span></h2> <p>Мы создали легкий и быстрый модуль для вывода котировок. Благодаря <b>локальному кэшированию</b> ваш сервер защищен от блокировок по IP со стороны поставщика данных, а <b>семантическая верстка</b> виджета гармонично впишется в любой дизайн сайта на DLE.</p>]]></content:encoded>
</item><item>
<title>Как удалить неактивных пользователей в DLE с ID = 0</title>
<link>https://web-maxs.ru/dle/useful_tips/366-kak-udalit-neaktivnyh-polzovatelej-v-dle-s-id-0.html</link>
<pdalink>https://web-maxs.ru/dle/useful_tips/366-kak-udalit-neaktivnyh-polzovatelej-v-dle-s-id-0.html</pdalink>
<guid>366</guid>
<pubDate>Tue, 13 Jan 2026 20:46:12 +0400</pubDate>
<category>native-yes</category>

<content:encoded><![CDATA[<p><span style="font-size:16.4px;">В работе с CMS DataLife Engine (DLE) нередко возникает задача очистки базы данных от неактивных или «фантомных» учётных записей. </span></p> <p><span style="font-size:16.4px;">Особую категорию составляют пользователи с ID = 0 — это, как правило, технические записи, возникшие из‑за сбоев, некорректного импорта или особенностей интеграции. </span></p> <p><span style="font-size:16.4px;">В этой статье разберём, как безопасно и эффективно удалить таких пользователей, используя SQL‑запросы.</span></p> <h2><span style="font-size:22.4px;color:#236fa1;">Почему появляются пользователи с ID = 0</span></h2> <p><span style="font-size:16.4px;">Пользователи с нулевым ID обычно не создаются вручную. Их появление может быть вызвано:</span></p> <ol> <li><span style="font-size:16.4px;">Ошибками при импорте данных из других систем;</span></li> <li><span style="font-size:16.4px;">Сбоями в работе скриптов регистрации;</span></li> <li><span style="font-size:16.4px;">Некорректными операциями с базой данных;</span></li> <li><span style="font-size:16.4px;">Особенностями работы сторонних модулей или плагинов.</span></li> </ol> <p><span style="font-size:16.4px;">Такие записи занимают место, могут мешать анализу статистики и в редких случаях вызывать конфликты в логике работы сайта.</span></p> <p><span style="font-size:18.4px;color:#34495e;"><b>Важные предупреждения перед удалением</b></span></p> <p><span style="color:#34495e;"><b><span style="font-size:16.4px;">Прежде чем выполнять удаление, обязательно учтите следующее:</span></b></span></p> <ul> <li><span style="font-size:16.4px;">Сделайте резервную копию базы данных. Это позволит восстановить данные в случае ошибки.</span></li> <li><span style="font-size:16.4px;">Проверьте, действительно ли записи с ID = 0 не нужны. Иногда такие пользователи могут быть связаны с системными процессами.</span></li> <li><span style="font-size:16.4px;">Убедитесь, что у вас есть доступ к phpMyAdmin или аналогичному инструменту для выполнения SQL‑запросов.</span></li> <li><span style="font-size:16.4px;">Выполняйте запросы только на тестовой копии базы, если сайт находится в продакшене.</span></li> </ul> <h3><span style="font-size:22.4px;color:#236fa1;">Шаг 1. Проверка наличия пользователей с ID = 0</span></h3> <p><span style="font-size:16.4px;">Прежде чем удалять данные, убедитесь, что такие пользователи существуют. Выполните запрос:</span></p> <pre class="language-markup"><code>SELECT * FROM `dle_users` WHERE `id` = 0;</code></pre> <p><span style="font-size:16.4px;">Этот запрос выведет все записи из таблицы dle_users, где поле id равно нулю. Если результат пуст, удалять нечего.</span></p> <h3><span style="font-size:22.4px;color:#236fa1;">Шаг 2. Анализ связей пользователей с другими таблицами</span></h3> <p><span style="font-size:16.4px;">Пользователи в DLE могут быть связаны с другими таблицами (например, комментарии, новости, личные сообщения). Чтобы избежать «битых» ссылок, проверьте наличие зависимостей:</span></p> <pre class="language-markup"><code>-- Проверка комментариев SELECT * FROM `dle_comments` WHERE `user_id` = 0; -- Проверка новостей SELECT * FROM `dle_post` WHERE `autor` = (SELECT `name` FROM `dle_users` WHERE `id` = 0); -- Проверка личных сообщений SELECT * FROM `dle_pm` WHERE `user_id` = 0 OR `to_user_id` = 0;</code></pre> <p><span style="color:#34495e;"><b><span style="font-size:16.4px;">Если запросы возвращают результаты, решите, что делать с этими данными:</span></b></span></p> <ol> <li><span style="font-size:16.4px;">Удалить связанные записи;</span></li> <li><span style="font-size:16.4px;">Переназначить их на другого пользователя;</span></li> <li><span style="font-size:16.4px;">Оставить как есть (если это допустимо).</span></li> </ol> <h2><span style="font-size:22.4px;color:#236fa1;">Шаг 3. Удаление пользователей с ID = 0</span></h2> <p><span style="font-size:16.4px;">Если проверка показала, что пользователи с ID = 0 действительно не нужны и не имеют критичных связей, выполните удаление:</span></p> <pre class="language-markup"><code>DELETE FROM `dle_users` WHERE `id` = 0;</code></pre> <p><span style="font-size:16.4px;color:#e67e23;"><b>Внимание! Этот запрос безвозвратно удалит все записи с нулевым ID. Убедитесь, что вы не перепутали условие (id = 0, а не user_group = 0 и т. п.).</b></span></p> <h4><span style="font-size:22.4px;color:#236fa1;">Альтернативный метод: удаление по группе пользователей</span></h4> <p><span style="font-size:16.4px;">В вашем запросе упоминается условие user_group = 4. Это означает удаление пользователей, принадлежащих к группе с ID = 4. Такой подход полезен, если вы хотите очистить базу от неактивных учётных записей определённой категории (например, гости или заблокированные пользователи).</span></p> <p><span style="color:#236fa1;"><b><span style="font-size:18.4px;">Как это работает:</span></b></span></p> <ul> <li><span style="font-size:16.4px;">В DLE группы пользователей хранятся в таблице dle_usergroups.</span></li> <li><span style="font-size:16.4px;">Каждая группа имеет уникальный ID (например, 1 — администраторы, 2 — модераторы, 4 — гости).</span></li> <li><span style="font-size:16.4px;">Удаление пользователей по группе позволяет массово очистить базу от ненужных записей.</span></li> </ul> <p><span style="color:#34495e;"><b><span style="font-size:16.4px;">Запрос для удаления:</span></b></span></p> <pre class="language-markup"><code>DELETE FROM `dle_users` WHERE `user_group` = 4;</code></pre> <p><b><span style="font-size:16.4px;color:#34495e;">Что нужно проверить перед выполнением:</span></b></p> <ol> <li><span style="font-size:16.4px;">Убедитесь, что группа с ID = 4 действительно соответствует неактивным пользователям (например, гостям).</span></li> <li><span style="font-size:16.4px;">Проверьте, нет ли в этой группе важных учётных записей (например, тестовых аккаунтов разработчиков).</span></li> <li><span style="font-size:16.4px;">Сделайте резервную копию базы.</span></li> </ol> <h4><span style="font-size:22.984px;color:#236fa1;">Шаг 4. Проверка результата</span></h4> <p><span style="font-size:16.4px;">После удаления выполните повторный запрос:</span></p> <pre class="language-markup"><code>SELECT * FROM `dle_users` WHERE `id` = 0 OR `user_group` = 4;</code></pre> <p><span style="font-size:16.4px;">Если результат пуст, удаление прошло успешно.</span></p> <h5><span style="font-size:22.4px;"><b><span style="color:#236fa1;">Дополнительные рекомендации</span></b></span></h5> <p><span style="color:#34495e;font-size:18.4px;"><b> Автоматизация очистки.</b></span></p> <p><span style="font-size:16.4px;"> Для регулярной очистки базы создайте скрипт, который:</span></p> <ol> <li><span style="font-size:16.4px;">Делает резервную копию;</span></li> <li><span style="font-size:16.4px;">Проверяет наличие пользователей с ID = 0 или ненужными группами;</span></li> <li><span style="font-size:16.4px;">Удаляет их по расписанию (например, раз в месяц).</span></li> </ol> <h3><span style="font-size:22.4px;color:#236fa1;">Использование phpMyAdmin. </span></h3> <p><span style="font-size:16.4px;">Если вы не уверены в SQL‑запросах, выполните удаление через интерфейс phpMyAdmin:</span></p> <ol> <li><span style="font-size:16.4px;">откройте таблицу dle_users;</span></li> <li><span style="font-size:16.4px;">отфильтруйте записи по id = 0 или user_group = 4;</span></li> <li><span style="font-size:16.4px;">выделите нужные строки и нажмите «Удалить».</span></li> </ol> <p><b><span style="font-size:18.4px;color:#236fa1;">Логирование действий.</span></b></p> <p><span style="font-size:16.4px;">Записывайте все выполненные запросы и их результаты. Это поможет отследить ошибки и восстановить данные при необходимости.</span></p> <p><span style="color:#236fa1;"><b><span style="font-size:18.4px;">Тестирование на копии. </span></b></span></p> <p><span style="font-size:16.4px;">Всегда тестируйте запросы на копии базы данных перед применением на продакшен‑сайте.</span></p> <p><b><span style="font-size:16.4px;color:#7e8c8d;">Заключение</span></b></p> <p><span style="font-size:16.4px;">Удаление неактивных пользователей с ID = 0 или по группам — важная часть обслуживания DLE. Следуя приведённым шагам, вы сможете:</span></p> <ul> <li><span style="font-size:16.4px;">безопасно очистить базу данных;</span></li> <li><span style="font-size:16.4px;">избежать потери важных данных;</span></li> <li><span style="font-size:16.4px;">поддерживать работоспособность сайта.</span></li> </ul> <p><span style="color:#236fa1;"><b><span style="font-size:18.4px;">Ключевые правила:</span></b></span></p> <ol> <li><span style="font-size:16.4px;">всегда делайте резервные копии;</span></li> <li><span style="font-size:16.4px;">проверяйте связи между таблицами;</span></li> <li><span style="font-size:16.4px;">тестируйте запросы на копиях базы;</span></li> <li><span style="font-size:16.4px;">документируйте выполненные действия.</span></li> </ol> <p><span style="font-size:16.4px;">Если у вас остались вопросы или возникли сложности, обратитесь к документации DLE или к сообществу разработчиков</span></p>]]></content:encoded>
</item></channel></rss>