⚙️DataLife Engine

Геймификация — Документация

Подробное руководство по установке и настройке плагина геймификации для CMS DataLife Engine.

Требования

CMS
DataLife Engine 14.x — 17.x
PHP
7.4+ (рекомендуется 8.1+)
MySQL / MariaDB
5.5 или выше
Веб-сервер
Apache 2.4+ или Nginx 1.18+
Расширения PHP
PDO, PDO_MySQL, cURL, JSON, mbstring
Подписка
Базовый, Про или Премиум

Скачать и распаковать

1

Войдите в личный кабинет

Перейдите на saas-service.ru/dashboard, раздел «Лицензии». Нажмите «Скачать плагин».

2

Распакуйте архив

В архиве dle_gamification.zip находится:

text
dle_gamification.zip
└── engine/
    └── plugins/
        └── dle_gamification/
            ├── core.php          ← ядро (лицензия, планы)
            ├── admin_panel.php   ← панель управления
            ├── leaderboard.php   ← страница рейтинга
            ├── quests.php        ← задания
            └── ...
Распакуйте архив локально перед загрузкой на сервер.

Загрузка файлов на сервер

1

Подключитесь по FTP/SFTP

Используйте FileZilla, WinSCP или другой FTP-клиент.

2

Загрузите папку плагина

bash
# Путь назначения:
/ваш_сайт/engine/plugins/dle_gamification/

# Примеры:
/var/www/html/engine/plugins/dle_gamification/
/home/username/public_html/engine/plugins/dle_gamification/
3

Права на папку кэша

bash
chmod 755 /ваш_сайт/engine/cache/
# Если не работает:
chmod 777 /ваш_сайт/engine/cache/
Не используйте 777 без необходимости — проверьте сначала 755.

Настройка Apache

DLE чаще всего работает на Apache. Настройте маршрутизацию и права доступа.

.htaccess — маршрутизация лидерборда

Добавьте в корневой .htaccess сайта перед основными правилами DLE:

apache
# Страница лидерборда
RewriteRule ^leaderboard/?$ /engine/plugins/dle_gamification/leaderboard.php [L,QSA]
RewriteRule ^leaderboard/(.*)$ /engine/plugins/dle_gamification/leaderboard.php?$1 [L,QSA]

# Защита кэша лицензии
<Files "dle_gmf_license.json">
    Order allow,deny
    Deny from all
</Files>
Если RewriteEngine On уже есть в .htaccess — не дублируйте эту директиву.

VirtualHost (опционально)

apache
<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html

    <Directory /var/www/html/engine/plugins/dle_gamification>
        Options -Indexes
        AllowOverride All
        Require all granted
    </Directory>

    <Files "dle_gmf_license.json">
        Require all denied
    </Files>
</VirtualHost>

Права доступа

bash
# Узнать пользователя Apache:
ps aux | grep apache | grep -v grep | head -1
# Обычно: www-data (Debian/Ubuntu) или apache (CentOS)

chown -R www-data:www-data /ваш_сайт/engine/plugins/dle_gamification/
find /ваш_сайт/engine/plugins/dle_gamification/ -type f -exec chmod 644 {} \
find /ваш_сайт/engine/plugins/dle_gamification/ -type d -exec chmod 755 {} \
chmod 755 /ваш_сайт/engine/cache/
chown www-data:www-data /ваш_сайт/engine/cache/

Настройка Nginx

location блок

nginx
server {
    listen 80;
    server_name example.com;
    root /var/www/html;

    # Лидерборд
    location ~ ^/leaderboard(/.*)?$ {
        try_files $uri $uri/ /engine/plugins/dle_gamification/leaderboard.php$is_args$args;
    }

    # PHP-FPM
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    # Защита кэша лицензии
    location ~ /engine/cache/dle_gmf_license\.json {
        deny all;
        return 404;
    }
}
Замените /run/php/php8.1-fpm.sock на путь к сокету вашей версии PHP. Проверьте: ls /run/php/

PHP-FPM pool

ini
; /etc/php/8.1/fpm/pool.d/www.conf
[www]
user  = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data
php_admin_value[upload_max_filesize] = 32M
php_admin_value[post_max_size] = 32M

Права доступа

bash
chown -R www-data:www-data /ваш_сайт/engine/plugins/dle_gamification/
chown -R www-data:www-data /ваш_сайт/engine/cache/
find /ваш_сайт/engine/plugins/dle_gamification/ -type f -exec chmod 644 {} \
chmod 755 /ваш_сайт/engine/cache/

# Перезапуск:
nginx -t && systemctl reload nginx
systemctl reload php8.1-fpm
Проверьте конфигурацию командой nginx -t перед перезапуском.

Включение плагина в DLE

1

Войдите в панель DLE

Перейдите на https://ваш-сайт.ru/admin.php

2

Управление плагинами

В меню DLE: Управление плагинами → DLE Gamification → Включить.

3

Создание таблиц БД

При первом включении плагин автоматически создаст таблицы MySQL. Пользователь БД должен иметь права CREATE TABLE.

Если таблицы не создались при активации — откройте страницу /leaderboard/ в браузере: плагин создаст их при первом обращении.

Ввод API ключа

1

Получите API ключ

В личном кабинете → «Лицензии» — скопируйте ключ для нужного домена.

2

Введите ключ в DLE

Управление плагинами → DLE Gamification → Настройки → API ключ → Сохранить.

После сохранения плагин проверит лицензию и создаст кэш /engine/cache/dle_gmf_license.json на 24 часа. Модуль работает даже без интернета в течение этого времени.
Лицензия привязана к домену. При переезде — обновите домен в личном кабинете и удалите кэш.

Страница лидерборда

text
https://ваш-сайт.ru/leaderboard/
https://ваш-сайт.ru/leaderboard/?tab=quests
https://ваш-сайт.ru/leaderboard/?tab=shop    ← Премиум
https://ваш-сайт.ru/leaderboard/?lang=en     ← Премиум

Ссылка в меню шаблона DLE

html
<!-- templates/ваш_шаблон/main.tpl -->
<a href="/leaderboard/">🏆 Рейтинг</a>

Частые вопросы

Q./leaderboard/ выдаёт 404
Проверьте RewriteRule в .htaccess (Apache) или location блок (Nginx). Убедитесь что AllowOverride All включён и сервер перезапущен.
Q.Ошибка «License cache write failed»
Папка /engine/cache/ недоступна для записи. Выполните: chmod 755 /ваш_сайт/engine/cache/ и проверьте владельца (chown www-data).
Q.Таблицы не создаются
Пользователь MySQL должен иметь права CREATE TABLE. Проверьте: SHOW GRANTS FOR 'user'@'localhost'; Также убедитесь что pdo_mysql включён в php.ini.
Q.Не определяется текущий пользователь
Плагин использует 6 методов: cookie, сессия, БД. Проверьте что пользователь авторизован в DLE и cookie не заблокированы.
Q.Функции Про/Премиум недоступны
Кэш лицензии мог сохранить старый план. Удалите /engine/cache/dle_gmf_license.json — при следующем запросе плагин получит актуальные данные.
Q.Перенос на другой домен
Обновите домен лицензии в личном кабинете. Удалите dle_gmf_license.json на новом сервере и введите тот же API ключ.

Остались вопросы?

Напишите в поддержку — ответим в течение рабочего дня

Написать в поддержку