Очень важно перед запуском cron основного модуля синхронизировать всю вашу действующую базу — это позволит избежать дублирования.
DLE Movie Importer PRO - Полная документация
1. Установка и первоначальная настройка
1.1. Установка модуля
- Войдите в административную панель вашего DLE сайта
- Перейдите в раздел "Сторонние модули" → "Установка модулей"
- Загрузите файл
dle-movie-importer-pro.zipчерез систему установки - Дождитесь завершения установки (может занять до 30 секунд)
- После успешной установки в разделе "Сторонние модули" появится новый модуль "DLE Movie Importer PRO"
- Нажмите на название модуля для перехода в панель управления
1.2. Первичная активация
При первом запуске модуль создаст необходимые таблицы в базе данных:
dle_movie_importer_movies- основная таблица фильмовdle_movie_importer_persons- таблица персонdle_movie_importer_episodes- таблица эпизодов сериаловdle_movie_importer_cache- таблица кеша
2. Детальная настройка модуля
2.1. Вкладка "Основные" - Базовая конфигурация
2.1.1. API конфигурация ALLOHA
API токен ALLOHA - это ваш уникальный ключ доступа к базе данных фильмов и сериалов.
Получение токена:
- Перейдите на https://alloha.tv/
- Зарегистрируйтесь или войдите в личный кабинет
- В разделе "API" создайте новый токен
- Скопируйте токен и вставьте в поле настроек модуля
Важно: Токен имеет формат: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
2.1.2. Детальные настройки лимитов импорта
Лимит полного импорта (поле: import_limit)
- Описание: Определяет количество материалов, импортируемых за один CRON запрос при полном импорте
- Диапазон значений: 1-30
- Рекомендации по настройке:
- VPS с 1 ядром, 1GB RAM: 5-8 материалов
- VPS с 2 ядрами, 2GB RAM: 10-15 материалов
- VPS с 4 ядрами, 4GB RAM: 15-20 материалов
- Выделенный сервер: 20-30 материалов
- При включенном AI Rewrite: уменьшите лимит в 2 раза
- Формула расчета нагрузки:
Время обработки = (Лимит × 2 сек) + (Rewrite ? Лимит × 5 сек : 0)
Лимит режима обновлений (поле: update_limit)
- Описание: Количество материалов для проверки обновлений (новые серии, изменения рейтинга)
- Диапазон значений: 1-20
- Особенности:
- Проверяет последние добавленные материалы в API
- Обновляет существующие записи на сайте
- Добавляет новые эпизоды к сериалам
- Обновляет рейтинги и описания
Максимум страниц обновлений (поле: max_update_pages)
- Описание: Глубина проверки обновлений в API
- Значение по умолчанию: 30
- Рекомендации:
- Для ежедневных обновлений: 10-15 страниц
- Для почасовых обновлений: 5-10 страниц
- Для обновлений раз в 10 минут: 3-5 страниц
2.1.3. Секретный ключ CRON
Генерация и использование:
// Автоматическая генерация при установке
$cron_secret = substr(md5(time() . $_SERVER['HTTP_HOST']), 0, 20);
Безопасность:
- Ключ должен быть уникальным для каждого сайта
- Рекомендуется менять ключ каждые 3-6 месяцев
- Минимальная длина: 10 символов
- Используйте только латинские буквы и цифры
2.2. CRON URL - Полное руководство по автоматизации
2.2.1. Структура CRON URL
Базовый формат:
https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=TYPE&category=CATEGORY
Параметры:
secret_key- ваш секретный ключtype- тип операции (last/list/search/translation/trailer)category- категория контента (movie/serial/anime/anime-serial/tv-show)
2.2.2. Детальное описание всех CRON операций
РЕЖИМ ОБНОВЛЕНИЙ (type=last)
Используется для получения последних обновлений из API.
# Все категории (универсальный)
*/30 * * * * curl -s "https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=last"
# Только фильмы
*/45 * * * * curl -s "https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=last&category=movie"
# Только сериалы (рекомендуется чаще, так как выходят новые серии)
*/15 * * * * curl -s "https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=last&category=serial"
# Аниме
0 */2 * * * curl -s "https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=last&category=anime"
# Аниме-сериалы
*/20 * * * * curl -s "https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=last&category=anime-serial"
# ТВ-шоу
0 */3 * * * curl -s "https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=last&category=tv-show"
ПОЛНЫЙ ИМПОРТ (type=list)
# Полный импорт всех категорий (запускать только ночью!)
0 3 * * * curl -s "https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=list"
# Полный импорт фильмов (разделить на несколько запусков)
0 2 * * 1 curl -s "https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=list&category=movie"
# Полный импорт сериалов
0 2 * * 3 curl -s "https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=list&category=serial"
СПЕЦИАЛЬНЫЕ ФУНКЦИИ
# Импорт переводчиков (раз в неделю достаточно)
0 5 * * 0 curl -s "https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=translation"
# Импорт трейлеров (раз в день)
0 6 * * * curl -s "https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=trailer"
# Поисковый импорт (использует фильтры из "Продвинутые")
*/45 * * * * curl -s "https://yoursite.com/engine/ajax/controller.php?mod=movie_importer_cron&secret_key=YOUR_KEY&action=cron_run&type=search"
2.2.3. Оптимальная настройка CRON по мощности сервера
Слабый сервер (1 CPU, 1GB RAM):
# Обновления каждые 2 часа с лимитом 5
0 */2 * * * curl -s "URL&type=last"
Средний сервер (2 CPU, 2-4GB RAM):
# Обновления каждые 30 минут с лимитом 10
*/30 * * * * curl -s "URL&type=last"
# Полный импорт раз в неделю ночью
0 3 * * 0 curl -s "URL&type=list"
Мощный сервер (4+ CPU, 8+ GB RAM):
# Обновления каждые 10 минут с лимитом 20
*/10 * * * * curl -s "URL&type=last"
# Разделенный полный импорт по категориям
0 2 * * * curl -s "URL&type=list&category=movie"
0 3 * * * curl -s "URL&type=list&category=serial"
2.3. Категории - Полное руководство по маппингу
2.3.1. Принципы маппинга категорий
Маппинг - это соответствие между категориями API и категориями вашего сайта.
Формат записи:
API_категория - Ваша_категория
2.3.2. Подробные примеры настройки
Пример 1: Простая структура
Фильмы - Фильмы
Сериалы - Сериалы
Мультфильмы - Мультфильмы
Аниме - Аниме
Пример 2: Сложная иерархическая структура
Фильмы - Фильмы
Фильмы/Боевик - Фильмы/Боевик
Фильмы/Комедия - Фильмы/Комедия
Фильмы/Драма - Фильмы/Драма
Фильмы/Ужасы - Фильмы/Ужасы
Фильмы/Фантастика - Фильмы/Фантастика
Сериалы - Сериалы
Сериалы/Российские - Сериалы/Российские
Сериалы/Зарубежные - Сериалы/Зарубежные
Пример 3: Маппинг годов
2025 - 2025
2024 - 2024
2023 - 2023
2020-2022 - Фильмы 2020-2022
Пример 4: Маппинг стран
США - США
Россия - Россия
Великобритания - Великобритания
Франция - Франция
Германия - Германия
Япония - Япония
Южная Корея - Корея
2.3.3. Специальные случаи и решение проблем
Проблема: API отдает категорию, которой нет на сайте Решение: Создайте универсальную категорию
НеизвестныйЖанр - Прочее
Проблема: Одна категория API должна попасть в несколько категорий сайта Решение: Используйте мультикатегории через запятую
Фильмы/Боевик - Фильмы,Боевики,Экшн
2.4. Дополнительные поля - Расширенная настройка
2.4.1. Типы дополнительных полей и их применение
Текстовые поля (input):
kinopoisk_id- ID фильма на Кинопоискеimdb_id- ID фильма на IMDBworld_art_id- ID на World-Artoriginal_name- Оригинальное названиеslogan- Слоган фильма
Числовые поля:
rating_kp- Рейтинг Кинопоиск (формат: 7.5)rating_imdb- Рейтинг IMDB (формат: 7.5)rating_critics- Рейтинг критиковvotes_kp- Количество голосов КПvotes_imdb- Количество голосов IMDB
Текстовые области (textarea):
actors- Список актёровdirectors- Список режиссёровproducers- Список продюсеровwriters- Сценаристыoperators- Операторы
Специальные поля:
poster- Постер (изображение или ссылка)trailer- Код трейлераplayer- Код плеераquality- Качество видеоduration- Продолжительность
2.4.2. Создание и настройка xfields
Шаг 1: Создание поля в DLE
- Админпанель → Дополнительные поля
- Добавить новое поле
- Указать название (латиницей)
- Выбрать тип поля
- Сохранить
Шаг 2: Маппинг в модуле
API_field - your_xfield_name
Примеры маппинга:
rating_kp - kp_rating
rating_imdb - imdb_rating
year - god
country - strana
genre - zhanr
actors - aktery
director - rezhisser
quality - kachestvo
duration - dlitelnost
2.5. Оформление - SEO и шаблоны контента
2.5.1. Все доступные переменные для шаблонов
Основные данные:
{id}- ID в API{kp_id}- ID Кинопоиск{imdb_id}- ID IMDB{name}- Название на русском{original_name}- Оригинальное название{year}- Год выпуска{description}- Описание{short_description}- Краткое описание{slogan}- Слоган
Рейтинги и статистика:
{rating_kp}- Рейтинг КП{rating_imdb}- Рейтинг IMDB{rating_critics}- Рейтинг критиков{votes_kp}- Голосов на КП{votes_imdb}- Голосов на IMDB
Персоны:
{actors}- Актёры{directors}- Режиссёры{producers}- Продюсеры{writers}- Сценаристы{operators}- Операторы{composers}- Композиторы
Технические данные:
{quality}- Качество{duration}- Длительность{premiere_russia}- Премьера в России{premiere_world}- Мировая премьера{age_restrictions}- Возрастные ограничения
Категории и жанры:
{genres}- Жанры через запятую{countries}- Страны через запятую{tags}- Все теги
2.5.2. Примеры настройки шаблонов
Шаблон заголовка (title):
{name} ({year}) смотреть онлайн бесплатно в хорошем качестве
Шаблон meta title:
[if-serial]Сериал [/if-serial]{name} ({year}) - [if-rating_kp]КП: {rating_kp}[/if-rating_kp] - смотреть онлайн HD
Meta Keywords:
{name}, {original_name}, {year}, смотреть онлайн, {genres}, {actors}, {directors}, фильм {year} года
ЧПУ (alt_name):
{original_name}
2.6. Изображения - Детальная настройка
2.6.1. Режим внешних ссылок
Настройка:
- Создайте xfield типа "Одна строка"
- Назовите его
poster_url - В маппинге укажите:
poster - poster_url
Преимущества:
- Не занимает место на сервере
- Быстрая скорость импорта
- Нет нагрузки на сервер
Недостатки:
- Зависимость от внешнего сервера
- Возможные проблемы с HTTPS
- Нет контроля над изображениями
2.6.2. Режим загрузки на сервер (рекомендуется)
Настройка:
- Создайте xfield типа "Загружаемое изображение"
- Назовите его
poster - В настройках модуля включите "Загружать изображения"
Детальные параметры:
- Папка сохранения:
/uploads/posts/{year}/{month}/ - Максимальный размер: 2 MB
- Разрешенные форматы: JPG, PNG, WEBP, AVIF
- Качество сжатия: 85% (оптимально)
Настройки ресайза:
Ширина постера: 300px
Высота постера: 450px
Сохранять пропорции: Да
Обрезать по центру: Да
Водяной знак: Опционально
Оптимизация изображений:
Оригинал → 1920x2880 (2MB)
После обработки → 300x450 (50KB) WEBP
Экономия: 97.5%
2.7. Модерация - Контроль контента
2.7.1. Фильтры
Обязательные поля для публикации:
-
Отправлять все на модерацию
-
На модерацию, если нет постера
-
На модерацию, если нет описания
2.7.2. Фильтры по контенту
Возрастные ограничения:
- Не публиковать 18+ контент
- Не публиковать без рейтинга
- Модерация для 16+ контента
Качество видео:
- Только HD и выше
- Только с определенными переводами
- Исключить CAMRip/TS
2.8. API Фильтры - Тонкая настройка импорта
2.8.1. Все доступные фильтры
Основные фильтры:
name=Текст # Поиск по названию
year=2024 # Конкретный год
year=2020,2021,2022 # Несколько годов
year=2020-2025 # Диапазон годов
not_year=2010,2011 # Исключить годы
Фильтры по рейтингу:
rating_kp=7.0 # КП от 7.0 и выше
rating_imdb=6.5 # IMDB от 6.5 и выше
votes_kp=10000 # Минимум голосов на КП
votes_imdb=5000 # Минимум голосов на IMDB
Фильтры по жанрам:
genre=драма # Один жанр
genre=драма,комедия # Несколько жанров
not_genre=ужасы # Исключить жанр
Фильтры по странам:
country=США # Одна страна
country=США,Франция # Несколько стран
not_country=Индия # Исключить страну
Фильтры по персонам:
actor=Джонни Депп # Конкретный актер
director=Кристофер Нолан # Конкретный режиссер
producer=Стивен Спилберг # Конкретный продюсер
Технические фильтры:
poster=1 # Только с постером
description=1 # Только с описанием
trailer=1 # Только с трейлером
quality=HD # Конкретное качество
translation_id=1 # ID перевода
Сортировка:
order=rating_kp # По рейтингу КП
order=rating_imdb # По рейтингу IMDB
order=year # По году
order=created # По дате добавления
order_type=DESC # По убыванию
order_type=ASC # По возрастанию
2.9. Продвинутые фильтры - Поисковый импорт
2.9.1. Отличие от основных фильтров
Основные фильтры:
- Применяются к type=list и type=last
- Используют общие счетчики
- Работают с основным CRON
Продвинутые фильтры:
- Применяются только к type=search
- Имеют отдельные счетчики
- Независимый CRON процесс
2.9.2. Сценарии использования
Сценарий 1: Премиальный контент
Основной CRON: все фильмы
Поисковый CRON: rating_kp >= 8.0, year >= 2023
Сценарий 2: Тематический импорт
Основной CRON: общий поток
Поисковый CRON: genre=фантастика, country=США
3. Система управления персонами
3.1. Общие принципы работы
Система персон работает в связке с основным импортом фильмов. При импорте каждого фильма автоматически создаются записи о персонах.
3.2. Kinopoisk Unofficial парсинг - Полное руководство
3.2.1. Настройка API Kinopoisk Unofficial
Получение API ключа:
- Перейдите на https://kinopoiskapiunofficial.tech/
- Зарегистрируйтесь через email
- Подтвердите почту
- В личном кабинете скопируйте API ключ
Тарифные планы:
- Бесплатный: 500 запросов/день
- Расширенный доступ: 10,000 запросов/день (500 руб. / меся)
Проверка API ключа в модуле:
- Вставьте ключ в поле настроек
- Нажмите кнопку "Проверить"
- Система выполнит тестовый запрос к API
- При успехе увидите сообщение "API ключ правильный"
3.2.2. Вкладка "API настройки"
Kinopoisk Unofficial API ключ:
- Поле для ввода вашего API ключа
- Кнопка проверки работоспособности
- Индикатор оставшихся запросов за день
Режим парсинга:
- Все необработанные - парсит всех персон без статуса
- Только новые (NULL) - только новые записи без попыток
- Повторить неудачные - персоны со статусом error/not_found
- Повторить найденные - обновление уже найденных персон
Лимит за CRON запуск:
- Диапазон: 1-50 персон
- Рекомендуется: 10-20 персон
- При бесплатном тарифе: не более 10
Максимальный размер фото:
- 1 MB - экономия места
- 2 MB - оптимальный вариант
- 5 MB - максимальное качество
Дополнительные опции:
- Разрешить ручной парсинг
- Разрешить CRON парсинг
- Автоматически загружать фото
- Обновлять существующие данные
- Изменять размер фото
Параметры изображений:
- Ширина: 500px
- Высота: 750px
- Формат: WEBP/AVIF (для экономии)
3.2.3. Вкладка "Парсинг"
Статистика парсинга:
Всего персон: 15,234
К обработке: 8,456
Успешно: 5,234
Найдено: 1,234
Ошибки: 234
Пропущено: 76
Ручной запуск парсинга:
- Нажмите "Начать парсинг"
- Система начнет последовательную обработку
- Прогресс отображается в реальном времени
- Логи показывают детали каждой операции
3.2.4. Вкладка "CRON"
CRON статус:
- Индикатор: Включён/Отключён
- Последний запуск: дата и время
- Обработано за последний запуск: количество
CRON URLs:
Обычный режим:
*/10 * * * * curl -s "https://site.com/engine/ajax/controller.php?mod=person_parsing_cron&secret_key=KEY"
Принудительный режим (игнорирует временные ограничения):
0 */2 * * * curl -s "https://site.com/engine/ajax/controller.php?mod=person_parsing_cron&secret_key=KEY&force=1"
3.3. Настройки персон - Полная конфигурация
3.3.1. Вкладка "Кеширование"
Система кеширования персон:
Статистические карточки:
- Статус кеша: ВКЛЮЧЕН/ОТКЛЮЧЕН
- Файлов в кеше: количество
- Размер кеша: в MB
- Время жизни: минуты или ∞
Режимы кеширования:
Безлимитный (рекомендуется):
- Кеш не устаревает автоматически
- Обновляется только при изменении данных
- Экономит ресурсы сервера
- Идеально для стабильных баз
С ограничением по времени:
- Автоматическое обновление через интервал
- Диапазон: 300-86400 секунд (5 минут - 24 часа)
- Подходит для часто обновляемых данных
- Требует больше ресурсов
Управление кешем:
- Полная очистка кеша - удаляет все файлы
- Очистка устаревшего - только старые файлы
- Автоочистка при сохранении настроек
Тип ЧПУ для страницы персоны:
slug- /person/johnny-depp/ (по имени)id- /person/12345/ (по ID)
3.3.2. Вкладка "Отображение"
Персон на странице:
12 = Сетка 3×4 (компактно)
20 = Сетка 4×5 (стандарт)
24 = Сетка 4×6 (оптимально)
30 = Сетка 5×6 (подробно)
48 = Сетка 6×8 (максимум)
Заглушка для фото:
- Путь по умолчанию:
/templates/Default/images/no_avatar.png - Можно указать внешний URL
- Поддерживает SVG для экономии
Длина биографии в превью:
- Минимум: 50 символов
- Максимум: 5000 символов
- Оптимально: 200 символов
Дополнительные опции:
- Показывать роли персон (актер, режиссер)
- Показывать debug-статистику
- Разрешить поисковую индексацию
3.3.3. Вкладка "SEO Общие"
Глобальные модификаторы Title:
Эти переменные можно использовать в шаблонах:
Префикс {prefix}:
Пример: "Кинопортал | "
Результат в title: Кинопортал | Актеры и режиссеры
Суффикс {suffix}:
Пример: " - База актеров 2025"
Результат в title: Актеры и режиссеры - База актеров 2025
Разделитель {separator}:
Пример: " | " или " — "
Использование: {person_name}{separator}{profession}
Результат: Джонни Депп | Актер
Социальные сети:
- Open Graph теги (Facebook, VK, Telegram)
- Twitter Card теги
- Изображение по умолчанию: URL для соцсетей (1200×630px)
3.3.4. Вкладка "SEO Список"
Шаблоны для списка персон (/persons/):
Доступные переменные:
{prefix}- глобальный префикс{suffix}- глобальный суффикс{filters}- активные фильтры (текст){filters_keywords}- фильтры (ключевые слова){page}- номер страницы{total}- всего персон
Шаблон Title:
{prefix}Актеры и режиссеры{filters}{suffix}
Результат: "Кинопортал | Актеры и режиссеры Актер из США - База актеров"
Шаблон Description:
Полная база актеров и режиссеров. {filters}. Всего персон: {total}. Страница {page}
Результат: "Полная база актеров и режиссеров. роль: актер, страна: США. Всего персон: 15234. Страница 1"
Шаблон Keywords:
актеры, режиссеры, знаменитости, {filters_keywords}
Автоматическое дополнение Keywords:
- Авто-генерировать Keywords
- Количество имен: 5-20 (оптимально 10)
- Добавляются имена из текущего списка
3.3.5. Вкладка "SEO Персона"
Шаблоны для страницы персоны (/person/name/):
Доступные переменные:
{person_name}- имя персоны{person_name_en}- имя на английском{profession}- основная профессия{profession_keywords}- все профессии{country}- страна{age}- возраст (60 лет){movies_count}- количество фильмов
Условные блоки:
[profession]{profession}[/profession]
[not-profession]Персона[/not-profession]
Дополнительные опции:
- Авто-генерировать Keywords
- Включать названия фильмов
- Количество фильмов в Keywords: 3-15
3.3.6. Вкладка "Статистика"
Статистика базы персон:
- Всего персон: количество
- С фотографиями: количество (процент)
- С биографией: количество (процент)
- Покрытие фото: процент
- Покрытие биографий: процент
Активные функции:
- Кеширование данных: ВКЛ/ВЫКЛ
- Отображение ролей: ВКЛ/ВЫКЛ
- Поисковая индексация: ВКЛ/ВЫКЛ
- Показ статистики: ВКЛ/ВЫКЛ
- Open Graph теги: ВКЛ/ВЫКЛ
- Twitter Card теги: ВКЛ/ВЫКЛ
Производительность:
- График покрытия фотографиями
- График покрытия биографиями
- Цветовая индикация (зеленый/желтый/красный)
Системная информация:
- Директория кеша:
/engine/cache/persons/ - Права на запись: проверка
- Конфигурационный файл: путь и статус
4. Настройка эпизодов
4.1. Список эпизодов
Функции управления:
- Поиск по названию сериала
- Фильтрация по сезонам
- Массовое редактирование
- Добавление новых эпизодов
- Удаление эпизодов
- Изменение порядка
Структура эпизода:
Сериал: Название
Сезон: 1
Эпизод: 1
Название эпизода: Пилот
Дата выхода: 2025-01-01
Качество: 1080p
Перевод: Дубляж
4.2. Темы и настройки плеера
Добавьте этот код в файл fullstory.tpl в то место, где должен отображаться плеер
{episodes}
4.2.1. Выбор темы
Доступные темы:
- Classic - классический дизайн
- Modern - современный плоский дизайн
- Dark - темная тема
- Netflix - стиль Netflix
- YouTube - стиль YouTube
- Custom - своя тема
Настройка цветов:
- Основной цвет
- Цвет кнопок
- Цвет прогресс-бара
- Цвет текста
4.2.2. Параметры плеера
Изображение-заставка:
- URL изображения до начала воспроизведения
- Размер: 1920×1080px
- Формат: JPG/PNG/WEBP
Время старта видео:
- Пропуск интро: секунды
- Пропуск титров: автоопределение
- Сохранение позиции просмотра
Дополнительные настройки:
- Автовоспроизведение
- Показывать субтитры
- Качество по умолчанию
- Скорость воспроизведения
4․3․ График эпизодов
Здесь вы настраиваете получение дополнительного контента для эпизодов сериалов.
Например: название эпизода, постер, описание, дата выхода и изображение, которое будет отображаться под плеером.
Существует 3 способа получения этих данных, которые необходимо выбрать и настроить в разделе:?mod=movie_importer&action=episod&sub_action=settings
-
TMDB – требуется API-ключ, который можно получить здесь: https://www.themoviedb.org/settings/api.
Данные с TMDB приходят на русском языке. -
TVMaze – не требует API-ключа, однако данные приходят на английском языке.
-
Гибридный режим – рекомендуется.
В этом режиме сначала выполняется запрос к TMDB, и если данные отсутствуют, система обращается к API TVMaze.
Категории сериалов
Выберите на сайте те категории, которые относятся к сериалам.
Например: Сериалы, Аниме-сериалы, Мультсериалы, а иногда и TV-шоу.
Режим работы
Это логика работы CRON-ссылки.
-
Smart (рекомендуется) – интеллектуальный режим.
Когда запускается ваш CRON, приоритет отдаётся наиболее часто просматриваемым сериалам.
Например, если кто-то посмотрел условный сериал «Supernatural», то он поднимается выше в очереди, и при следующем запуске CRON метаданные этого сериала (названия и постеры эпизодов, описание, даты выхода) будут обновлены в первую очередь, что позволяет поддерживать контент максимально актуальным. -
Только CRON – не имеет механизма приоритетов.
Обновление данных происходит тогда, когда CRON дойдет до конкретного материала в своей очереди.
Интервал обновления (часы)
Это продолжение предыдущего пункта.
Например, если приоритет какого-то сериала был повышен, но Интервал обновления установлен на 24 часа, то данные этого сериала не будут обновляться чаще одного раза в сутки, даже при просмотре, что позволяет экономить ресурсы.
Лимит CRON-обработки (сериалов)
Ограничение количества сериалов, которые CRON может обновить за один запуск.
Например, при значении 20 за один запуск обновятся данные для 20 сериалов.
Лимит API-запросов (эпизодов)
Максимальное количество эпизодов, которые система может обработать для одного сериала за один запрос.
Рекомендуемое значение — около 100.
Чем больше значение, тем больше ресурсов потребуется, но при этом можно полностью обновить многосерийные проекты.
CRON-ссылка
https://site.ru/engine/ajax/controller.php?mod=movie_importer_schedule_queue&secret_key=your_api_key
Рекомендуемая частота: каждые 5–10 минут
(шаблон CRON: */5 * * * *)
Пример для cPanel:
*/5 * * * * wget -q -O - "https://site.ru/engine/ajax/controller.php?mod=movie_importer_schedule_queue&secret_key=your_api_key"
5. Настройки ИИ для Контента (AI Rewrite)
Этот раздел предоставляет функционал для уникализации импортируемого контента с помощью нейросетей, что критически важно для SEO-продвижения и избежания фильтров поисковых систем за неуникальный контент.
-
Принцип: Модуль отправляет загруженное описание, название и мета-теги выбранному AI-провайдеру вместе с вашим промптом (инструкцией) и получает обратно уникализированный текст.
-
Польза для SEO: Уникальный контент повышает авторитет вашего сайта в глазах поисковых систем (Google, Yandex), что положительно влияет на ранжирование и трафик.
| Настройка | Назначение |
API / Документация
|
| Включить переписывание |
Активирует функцию AI Rewrite. Если включено, весь импортируемый контент (через CRON или вручную) будет автоматически переписываться.
|
|
| Основной AI провайдер |
Выбор нейросети для переписывания (ChatGPT, Gemini, DeepSeek, Claude, Grok, Yandex GPT).
|
|
| API Ключ и Модель | Ввод API-ключа и выбор конкретной модели для каждого провайдера. |
Google Gemini: https://ai.google.dev/gemini-api/docs
OpenAI (ChatGPT): https://platform.openai.com/docs/api-reference |
5.2. Цели
-
Назначение: Выбор полей DLE, которые должны быть переписаны нейросетью.
-
Доступные поля: Title, Metatitle, Краткая новость (Short Story), Полная новость (Full Story), Description, Keywords.
5.3. Промпты
-
Промпт (Prompt): Это инструкция или техническое задание, которое вы отправляете нейросети.
-
Назначение: В этом разделе вы пишете уникальные промпты для каждого переписываемого поля (Title, Description и т.д.), чтобы контролировать стиль, объем и тон сгенерированного текста.
-
Пример промпта: «Перепиши этот текст в стиле увлекательного обзора, используя позитивный тон. Ограничься 500 символами и не упоминай имена актеров.»
Чрезвычайно профессиональный подход! Предоставленные вами детали и код позволяют составить исчерпывающую, высококачественную документацию.
6. Настройка для ЧПУ Персон
Для DLE 19.0 и выше (Рекомендуется)
В DLE 19.0+ используется встроенная система Friendly URL без необходимости редактирования .htaccess.
Шаг 1: Добавление правил через Admin Panel
- Перейдите в Настройки → Управление ссылками ЧПУ
- Нажмите кнопку "Добавить правило" и добавьте следующие правила в указанном порядке:
Правило 1: Персоны с ролью и страницей
Ключ правила: custom.persons.role.page
SEO URL: /persons/{role}/page/{page}/
Реальный URL: /index.php?do=persons&role={role}&page={page}
```
**Правило 2: Персоны с ролью**
```
Ключ правила: custom.persons.role
SEO URL: /persons/{role}/
Реальный URL: /index.php?do=persons&role={role}
```
**Правило 3: Персоны со страницей**
```
Ключ правила: custom.persons.page
SEO URL: /persons/page/{page}/
Реальный URL: /index.php?do=persons&page={page}
```
**Правило 4: Главная страница персон**
```
Ключ правила: custom.persons
SEO URL: /persons/
Реальный URL: /index.php?do=persons
```
**Правило 5: Профиль персоны**
```
Ключ правила: custom.person.profile
SEO URL: /person/{slug}/
Реальный URL: /index.php?do=person&slug={slug}
```
#### Шаг 2: Изменение порядка правил
⚠️ **ВАЖНО:** После добавления всех правил необходимо изменить их порядок!
1. В списке правил Friendly URL найдите добавленные правила модуля
2. **Перетащите (drag & drop)** все 5 правил персон **В САМЫЙ ВЕРХ** списка
3. Правила персон должны находиться **ВЫШЕ** стандартных правил категорий и новостей
**Правильный порядок (сверху вниз):**
```
✅ custom.persons.role.page
✅ custom.persons.role
✅ custom.persons.page
✅ custom.persons
✅ custom.person.profile
---
[Стандартные правила DLE - category, news и т.д.]
Шаг 3: Проверка правил
- Нажмите кнопку "Проверить правила"
- Убедитесь, что нет ошибок: должно появиться сообщение "Правила не содержат ошибок"
- Если появляется ошибка "Static route is shadowed" - значит правила персон находятся слишком низко в списке, переместите их выше
Шаг 4: Очистка кеша
Перейдите в Инструменты → Очистка кеша → Полная очистка
Для DLE 18.x и ниже
Для более старых версий DLE добавьте следующие правила в ваш файл .htaccess сразу после строки RewriteEngine On:
# Movie Importer - Persons Module Rules
RewriteRule ^persons/page/([0-9]+)/?$ index.php?do=persons&page=$1 [L,QSA]
RewriteRule ^persons/?$ index.php?do=persons [L,QSA]
RewriteRule ^persons/(actor|director|producer|writer)/page/([0-9]+)/?$ index.php?do=persons&role=$1&page=$2 [L,QSA]
RewriteRule ^persons/(actor|director|producer|writer)/?$ index.php?do=persons&role=$1 [L,QSA]
RewriteRule ^person/([a-zA-Z0-9\-_]+)/?$ index.php?do=person&slug=$1 [L,QSA]
# End Movie Importer Rules
7. Шаблоны - Полное руководство
7.1. Структура шаблонов
/templates/ВАШ_ШАБЛОН/
├── persons/
│ ├── index.tpl # Главная страница списка
│ ├── list_item.tpl # Элемент списка персон
│ ├── person.tpl # Страница персоны
│ ├── fact_item.tpl # Элемент факта
│ ├── award_item.tpl # Элемент награды
│ └── family_item.tpl # Элемент семьи
├── movie_persons/
│ └── person_item.tpl # Персона в фильме
└── fullstory.tpl # Добавить теги персон
7.2. Шаблон списка персон (persons/index.tpl)
<div class="persons-page">
<!-- Фильтры -->
<div class="persons-filters">
<form method="get" action="/persons/">
<select name="role">
<option value="">Все роли</option>
<option value="actor" {filter_role_actor_selected}>Актеры</option>
<option value="director" {filter_role_director_selected}>Режиссеры</option>
<option value="producer" {filter_role_producer_selected}>Продюсеры</option>
<option value="writer" {filter_role_writer_selected}>Сценаристы</option>
</select>
<select name="country">
<option value="">Все страны</option>
{countries_options}
</select>
<select name="letter">
<option value="">Все буквы</option>
<option value="A">A</option>
<option value="B">B</option>
<!-- ... -->
</select>
<input type="text" name="q" placeholder="Поиск..." value="{search_query}">
<button type="submit">Применить</button>
</form>
[clear_filters]
<a href="/persons/" class="clear-filters">Сбросить фильтры</a>
[/clear_filters]
</div>
<!-- Сортировка -->
<div class="persons-sort">
Сортировка:
<a href="{sort_name_link}" class="{sort_name_active}">По имени</a>
<a href="{sort_popular_link}" class="{sort_popular_active}">По популярности</a>
<a href="{sort_movies_link}" class="{sort_movies_active}">По фильмам</a>
</div>
<!-- Статистика -->
<div class="persons-stats">
Найдено персон: {total_persons} |
Страница: {current_page} из {total_pages}
</div>
<!-- Список персон -->
[persons]
<div class="persons-grid">
{persons_list_items}
</div>
[/persons]
[not-persons]
<div class="no-persons">
<p>Персоны не найдены</p>
</div>
[/not-persons]
<!-- Пагинация -->
[pagination]
<div class="pagination">
{pagination}
</div>
[/pagination]
</div>
7.3. Элемент списка персон (persons/list_item.tpl)
<div class="person-card" data-id="{person_id}">
<a href="{person_link}" class="person-card__link">
<div class="person-card__image">
[if_person_photo]
<img src="{person_photo}" alt="{person_name}" loading="lazy">
[/if_person_photo]
[not_if_person_photo]
<div class="person-card__placeholder">
<span class="initial">{person_initial}</span>
</div>
[/not_if_person_photo]
[person_age]
<span class="person-card__age">{person_age} лет</span>
[/person_age]
</div>
<div class="person-card__content">
<h3 class="person-card__name">{person_name}</h3>
[person_country]
<div class="person-card__country">
<i class="icon-location"></i> {person_country}
</div>
[/person_country]
[person_roles]
<div class="person-card__roles">
{person_roles_list}
</div>
[/person_roles]
<div class="person-card__movies">
<i class="icon-film"></i> Фильмов: {person_movies_count}
</div>
[person_bio]
<div class="person-card__bio">
{person_bio_short}
</div>
[/person_bio]
</div>
</a>
</div>
7.4. Страница персоны (persons/person.tpl)
<div class="person-page">
<!-- Хлебные крошки -->
<div class="breadcrumbs">
<a href="/">Главная</a> /
<a href="/persons/">Персоны</a> /
<span>{person_name}</span>
</div>
<!-- Основная информация -->
<div class="person-header">
<div class="person-header__left">
[person_photo]
<img src="{person_photo}" alt="{person_name}" class="person-photo">
[/person_photo]
[no_person_photo]
<div class="person-no-photo">
<span class="initial">{person_initial}</span>
</div>
[/no_person_photo]
</div>
<div class="person-header__right">
<h1 class="person-name">{person_name}</h1>
[name_en]
<h2 class="person-name-en">{person_name_en}</h2>
[/name_en]
<div class="person-info">
<table class="info-table">
<tr>
<td>Профессия:</td>
<td>{person_profession}</td>
</tr>
[birth_date]
<tr>
<td>Дата рождения:</td>
<td>{person_birth_date}</td>
</tr>
[/birth_date]
[death_date]
<tr>
<td>Дата смерти:</td>
<td>{person_death_date}</td>
</tr>
[/death_date]
[age_text]
<tr>
<td>Возраст:</td>
<td>{person_age_text}</td>
</tr>
[/age_text]
[country]
<tr>
<td>Страна:</td>
<td>{person_country}</td>
</tr>
[/country]
[birthplace]
<tr>
<td>Место рождения:</td>
<td>{person_birthplace}</td>
</tr>
[/birthplace]
[growth]
<tr>
<td>Рост:</td>
<td>{person_growth} см</td>
</tr>
[/growth]
[sex]
<tr>
<td>Пол:</td>
<td>{person_sex}</td>
</tr>
[/sex]
</table>
</div>
<!-- Статистика по фильмам -->
<div class="person-stats">
<div class="stat-item">
<span class="stat-value">{total_movies}</span>
<span class="stat-label">Всего фильмов</span>
</div>
<div class="stat-item">
<span class="stat-value">{as_actor}</span>
<span class="stat-label">Как актер</span>
</div>
<div class="stat-item">
<span class="stat-value">{as_director}</span>
<span class="stat-label">Как режиссер</span>
</div>
<div class="stat-item">
<span class="stat-value">{as_producer}</span>
<span class="stat-label">Как продюсер</span>
</div>
</div>
</div>
</div>
<!-- Биография -->
[bio]
<div class="person-section">
<h3 class="section-title">Биография</h3>
<div class="person-biography">
{person_bio}
</div>
</div>
[/bio]
<!-- Факты -->
[facts]
<div class="person-section">
<h3 class="section-title">Интересные факты</h3>
<div class="person-facts">
{facts_list}
</div>
</div>
[/facts]
[no_facts]
<!-- Факты отсутствуют -->
[/no_facts]
<!-- Награды -->
[awards]
<div class="person-section">
<h3 class="section-title">Награды и номинации</h3>
<div class="person-awards">
{awards_list}
</div>
</div>
[/awards]
[no_awards]
<!-- Награды отсутствуют -->
[/no_awards]
<!-- Семья -->
[family]
<div class="person-section">
<h3 class="section-title">Семья</h3>
<div class="person-family">
{family_list}
</div>
</div>
[/family]
[no_family]
<!-- Информация о семье отсутствует -->
[/no_family]
<!-- Фильмография -->
[all_movies]
<div class="person-section">
<h3 class="section-title">Фильмография ({total_movies})</h3>
<div class="person-movies">
{all_movies_list}
</div>
</div>
[/all_movies]
[no_all_movies]
<div class="person-section">
<p>Фильмография пока отсутствует</p>
</div>
[/no_all_movies]
<!-- Debug информация -->
[cache_info]
<div class="debug-info">
{cache_info}
</div>
[/cache_info]
</div>
7.5. Элемент факта (persons/fact_item.tpl)
<div class="fact-item">
<i class="icon-info"></i>
<span class="fact-text">{fact_text}</span>
</div>
7.6. Элемент награды (persons/award_item.tpl)
<div class="award-item">
<div class="award-icon">{award_icon}</div>
<div class="award-content">
<div class="award-name">{award_name}</div>
[award_category]
<div class="award-category">Категория: {award_category}</div>
[/award_category]
[award_movie]
<div class="award-movie">За фильм: {award_movie}</div>
[/award_movie]
[award_year]
<div class="award-year">Год: {award_year}</div>
[/award_year]
</div>
</div>
7.7. Элемент семьи (persons/family_item.tpl)
<div class="family-item">
<div class="family-type">{family_type}:</div>
<div class="family-name">{family_name}</div>
[family_status]
<div class="family-status">({family_status})</div>
[/family_status]
[relation_type]
<div class="relation-type">{relation_type}</div>
[/relation_type]
[children_count]
<div class="children-count">Детей: {children_count}</div>
[/children_count]
[birth_year]
<div class="birth-year">Год рождения: {birth_year}</div>
[/birth_year]
</div>
7.8. Персона в фильме (movie_persons/person_item.tpl)
<div class="movie-person">
<a href="{person_url}" class="movie-person__link">
[person_photo]
<img src="{person_photo}" alt="{person_name}" class="movie-person__photo">
[/person_photo]
[no_person_photo]
<div class="movie-person__no-photo">
<span>{person_initial}</span>
</div>
[/no_person_photo]
<div class="movie-person__info">
<div class="movie-person__name">{person_name}</div>
[person_name_en]
<div class="movie-person__name-en">{person_name_en}</div>
[/person_name_en]
<div class="movie-person__role">{person_role}</div>
[character_name]
[is_actor]
<div class="movie-person__character">
Роль: {character_name}
</div>
[/is_actor]
[/character_name]
</div>
</a>
</div>
7.9. Интеграция в fullstory.tpl
В ваш шаблон fullstory.tpl добавьте следующие блоки:
<!-- Актеры и съемочная группа -->
[movie_persons]
<div class="movie-persons">
<h3>Актеры и съемочная группа</h3>
<div class="movie-persons-grid">
{movie_persons_list}
</div>
</div>
[/movie_persons]
[no_movie_persons]
<!-- Информация о персонах отсутствует -->
[/no_movie_persons]
<!-- Только актеры -->
[actors]
<div class="movie-actors">
<h4>В главных ролях</h4>
<p>{actors_list_with_characters}</p>
</div>
[/actors]
<!-- Только режиссеры -->
[directors]
<div class="movie-directors">
<h4>Режиссер</h4>
<p>{directors_list}</p>
<p>Главный режиссер: {main_director_name}</p>
</div>
[/directors]
<!-- Schema.org разметка (невидима для пользователей) -->
{movie_persons_schema}
8. Синхронизация (Обновление действующей базы)
В этом разделе вы можете интегрировать данный модуль с вашей действующей базой.
Необходимо перейти в раздел «Синхронизация», выбрать, какие из ваших полей будут обновляться, и запустить cron-ссылку.
Пример команды для crontab:
*/30 * * * * wget -q -O /dev/null "https://181.dlemod.ru/engine/ajax/controller.php?mod=movie_importer_sync&secret_key=94ad5ad51c7ca2a&action=sync_run&limit=5"
Перед запуском синхронизации настоятельно рекомендуется:
- Создать резервную копию базы данных
- Убедиться в правильности настроек
Рекомендуется не обновлять те поля, которые являются статичными, например: название, изображение, дата производства и т.д.
Заключение и поддержка
Важные замечания
- Обязательно создайте резервную копию базы данных перед установкой
- Проверьте совместимость с вашей версией DLE (минимум 13.0)
- Настройте правильно часовой пояс в PHP и MySQL
- Оптимизируйте настройки под мощность вашего сервера
- Следите за лимитами API сервисов
Частые проблемы и решения
Проблема: CRON не работает Решение: Проверьте секретный ключ и права доступа к файлам
Проблема: Изображения не загружаются Решение: Проверьте права на папку /uploads/ (должно быть 755 или 777)
Проблема: Персоны не парсятся Решение: Проверьте API ключ Kinopoisk и оставшиеся лимиты
Проблема: AI не переписывает тексты Решение: Проверьте баланс и корректность API ключей AI сервисов
Контакты поддержки
Модуль находится в стадии активного развития. При обнаружении ошибок или вопросах обращайтесь:
Официальный сайт: https://dlemod.ru
Форма обратной связи: https://dlemod.ru/index.php?do=feedback
Telegram: @snh001
Email: info@dlemod.ru
Версия модуля: 1.0.6
Дата обновления: 14.10.2025
Автор: DLEMod Team