Документация

Project-X CMS версия 1.1.0

О системе

Информация о Project-X CMS

Читать дальше
Руководства

Гайды для всех ролей

Читать дальше

Последние обновления

2025-12-13
  • API для управления контентом (Content Management API)
  • Реализована полнофункциональная система API для управления контентом
  • Создан ApiContentController с 6 основными endpoints:
  • POST /api/content/movies - создание фильмов
  • POST /api/content/series - создание сериалов
  • POST /api/content/series/{series_id}/seasons - добавление сезонов
  • POST /api/content/seasons/{season_id}/episodes - добавление эпизодов
  • GET /api/content - получение списка контента с фильтрацией
  • GET /api/content/{id} - получение детальной информации о контенте
  • Поддержка Bearer Token и X-API-Key аутентификации
  • Интеграция с существующей системой API ключей и rate limiting
  • Валидация всех входных данных с детальными сообщениями об ошибках
  • Поддержка транзакций для обеспечения целостности данных
  • Автоматическая привязка жанров, студий и языков дубляжа к контенту
  • Создание фильмов с полными метаданными:
  • title, description, duration, release dates
  • poster_url, video_url, status
  • привязка жанров, студий озвучки, языков дубляжа
  • Создание сериалов с иерархией:
  • Series → Seasons → Episodes
  • Поддержка нескольких сезонов на сериал
  • Поддержка нескольких эпизодов на сезон
  • Гибкая фильтрация при получении контента:
  • По типу (movie/series)
  • По статусу (draft/published/reserved/needs_clarification)
  • Пагинация (limit/offset)
  • Детальная информация о контенте включает:
  • Все метаданные контента
  • Список жанров с ID и названиями
  • Список студий озвучки
  • Список языков дубляжа
  • Для сериалов: полная иерархия сезонов и эпизодов
  • Комплексная валидация входных данных:
  • Обязательные поля (title для всех типов)
  • Валидация типов данных (integer для duration, date для release_date)
  • Валидация формата дат (YYYY-MM-DD)
  • Валидация массивов (genres, studios, dubbing_languages)
  • Проверка существования связанных сущностей
  • Проверка прав доступа через API ключи
  • Rate limiting для предотвращения злоупотреблений
  • IP whitelist и endpoint filtering
  • Полное логирование всех API запросов
  • Создана полная документация на украинском языке:
  • API_CONTENT_MANAGEMENT.md (1,562 строки)
  • API_CONTENT_QUICKSTART.md (371 строка)
  • Создана полная документация на русском языке:
  • API_CONTENT_MANAGEMENT_RU.md (1,562 строки)
  • API_CONTENT_QUICKSTART_RU.md (371 строка)
  • Создан итоговый документ:
  • API_CONTENT_IMPLEMENTATION_SUMMARY.md (295 строк)
  • API_CONTENT_README.md (78 строк)
  • Документация включает:
  • Детальное описание всех endpoints с примерами запросов/ответов
  • Полные примеры интеграции на PHP и Python
  • Классы-клиенты для упрощения интеграции
  • Best practices и рекомендации по безопасности
  • Примеры пакетного импорта из JSON файлов
  • Обработка ошибок и rate limiting
  • Добавлены ссылки в боковую панель документации (DocsController.php)
  • PHP класс ProjectXApiClient с методами:
  • createMovie(), createSeries()
  • createSeason(), createEpisode()
  • getContent(), getContentById()
  • Python класс ProjectXApiClient с аналогичными методами
  • Примеры создания сложных структур (сериал → сезоны → эпизоды)
  • Примеры пакетного импорта контента из JSON файлов
  • Примеры обработки ошибок и retry логики
2025-12-13
  • Система оформления заказов и ценообразования
  • Реализована полнофункциональная система кошика для клиентов
  • Создана таблица client_order_carts для хранения активных кошиков
  • Создана таблица client_order_cart_items для товаров в кошике
  • Model OrderCart с методами:
  • getActiveCartForClient() - получение активного кошика
  • ensureActiveCart() - создание кошика если не существует
  • markAsOrdered() - пометка кошика как оформленного
  • Model OrderCartItem с методами:
  • addItem() - добавление товара в кошик
  • removeItem() - удаление товара
  • getItemsByCart() - получение всех товаров кошика
  • getTotalHours() - расчет общего количества часов
  • clearCart() - очистка кошика после оформления
  • JavaScript client-cart-actions.js для AJAX операций с кошиком
  • Расширена система заказов для поддержки множественных товаров
  • Создана таблица order_items для хранения деталей товаров в заказе
  • Model OrderItem с методами:
  • createEntries() - сохранение списка товаров заказа
  • getByOrderId() - получение товаров заказа
  • getByOrderIds() - пакетное получение для нескольких заказов
  • Обновлена Model Order для работы с order_items
  • Два режима создания заказа:
  • Single Item Mode - заказ одного фильма/эпизода
  • Cart Mode - заказ нескольких товаров из кошика
  • Сохранение полных метаданных каждого товара в order_items
  • ClientOrderController с 13 методами:
  • catalog() - каталог контента с фильтрацией
  • cart() - просмотр кошика
  • addToCart() / removeFromCart() - API для управления кошиком
  • selectEpisodes() - выбор эпизодов сериала
  • checkout() - оформление заказа
  • create() - создание заказа
  • success() - страница успешного оформления
  • myOrders() - список заказов клиента
  • view() - детальный просмотр заказа
  • cancel() - отмена заказа
  • Созданы 7 view шаблонов:
  • catalog.php - каталог с пагинацией и фильтрами
  • cart.php - просмотр кошика с таблицей товаров
  • select-episodes.php - выбор эпизодов сериала по сезонам
  • checkout.php - форма оформления с выбором студии/микса
  • success.php - подтверждение успешного заказа
  • my-orders.php - список заказов с фильтрацией и статистикой
  • view.php - детали заказа с товарами
  • Создана комплексная система ценообразования
  • Таблица studio_prices для хранения цен студий:
  • Цены на фильмы и сериалы отдельно
  • Цены для каждой комбинации студия + язык озвучки
  • Поддержка активации/деактивации цен
  • Model Pricing с методами для управления ценами студий:
  • getAllStudioPrices() - получение всех цен
  • createStudioPrice() / updateStudioPrice() / deleteStudioPrice()
  • getStudioLanguages() - языки озвучки студии
  • PricingController::studioPrices() - административная панель управления
  • Реализована система миксов (несколько студий в одном заказе)
  • Таблица mix_studios для хранения миксов
  • Таблица mix_studio_members для связи микс-студия (many-to-many)
  • Таблица mix_prices для цен миксов
  • Таблица mix_dubbing_languages для языков озвучки миксов
  • Model Pricing с методами для миксов:
  • getAllMixes() - получение всех миксов
  • createMix() / updateMix() / deleteMix()
  • getMixStudios() - студии в миксе
  • createMixPrice() / updateMixPrice() / deleteMixPrice()
  • getActiveMixPricesByContentType() - активные цены
  • PricingController::mixPrices() - управление миксами и ценами
  • View edit-mix.php для редактирования состава миксов
  • Реализована система скидок за объем
  • Таблица volume_discounts для хранения уровней скидок:
  • min_hours - минимальное количество часов для скидки
  • discount_percentage - процент скидки (0-100)
  • Model Pricing с методами для скидок:
  • getAllVolumeDiscounts()
  • createVolumeDiscount() / updateVolumeDiscount() / deleteVolumeDiscount()
  • getApplicableVolumeDiscount() - получение лучшей скидки
  • calculateDiscount() - расчет процента скидки
  • Автоматическое применение скидок при оформлении заказа
  • PricingController::volumeDiscounts() - управление скидками
  • Расчет стоимости заказа с учетом:
  • Типа контента (фильм = 2 часа, эпизод = 1 час по умолчанию)
  • Цены за единицу (price_per_unit)
  • Количества товаров в заказе
  • Скидки за объем (volume_discount_percentage)
  • Формула: total_cost = price_per_unit × количество_товаров × (100 - скидка%) / 100
  • Сохранение всех параметров в таблице orders:
  • duration_minutes - общая длительность
  • price_per_minute - цена за минуту
  • total_cost - итоговая стоимость
  • volume_discount_percentage - примененная скидка
  • Поддержка блокировки контента при заказе (exclusive_lock)
  • Автоматическое создание записей в content_locks
  • Изменение статуса контента на 'reserved'
  • Разблокировка при отмене заказа
  • Order::createLockIfNeeded() - создание блокировки
  • Order::unlockContent() - снятие блокировки
  • Добавлена поддержка источника релиза (release_origin):
  • 'streaming' - для потоковых платформ
  • 'cinema' - для кинотеатрального проката
  • Сохранение в таблице orders
  • Отображение в формах оформления заказа
  • Migration_20251210_001_CreateClientOrderCartTables
  • Создание client_order_carts и client_order_cart_items
  • Migration_20251215_001_AddMixFieldsToOrders
  • Добавление mix_id, mix_price_id, volume_discount_percentage
  • Migration_20251220_001_CreateOrderItemsTable
  • Создание order_items для хранения товаров заказа
  • Migration_20251214_001_AddReleaseOriginColumnToOrders
  • Добавление release_origin
  • Migration_20251230_001_AllowNullStudioLanguageInOrders
  • Разрешение NULL для studio_dubbing_language_id (для миксов)
  • Интуитивный каталог контента с фильтрами:
  • Фильтрация по типу (фильмы/сериалы)
  • Фильтрация по жанру
  • Фильтрация по году выпуска
  • Текстовый поиск
  • Пагинация 12 товаров на странице
  • Удобный кошик с возможностью:
  • Добавления/удаления товаров через AJAX
  • Просмотра общего количества часов
  • Перехода к оформлению одним кликом
  • Гибкий процесс оформления заказа:
  • Выбор между студией и миксом
  • Динамическая загрузка языков озвучки
  • Автоматический расчет стоимости со скидкой
  • Добавление комментария к заказу
  • Личный кабинет клиента:
  • Список всех заказов с фильтрацией по статусу
  • Поиск по названию контента/студии
  • Статистика заказов по статусам
  • Детальный просмотр каждого заказа
  • Централизованная панель управления ценообразованием:
  • Главная страница со счетчиками
  • Управление ценами студий
  • Управление миксами и их составом
  • Управление ценами миксов
  • Управление скидками за объем
  • Полная поддержка CRUD операций для всех типов цен
  • Динамическая загрузка зависимых данных (языки студий/миксов)
  • Валидация всех входных данных
  • Система активации/деактивации без удаления
2025-11-27
  • Обновление документации для v1.1.0
  • Обновлены все документы до версии 1.1.0
  • Добавлены новые разделы в документацию для администраторов:
  • API Key Management - управление API ключами через админ-панель
  • WordPress Integration - интеграция плагина CF7 с REST API
  • Расширена документация для разработчиков:
  • Подробное описание REST API (v1.1.0)
  • Инструкции по использованию Project-X CF7 Integration плагина
  • Примеры кода для интеграции
  • Обновлены все даты и версии документов на 1.1.0 (27 ноября 2025)
  • Обновлено описание системы в system/overview.md
2025-11-27
  • REST API и система управления API ключами (Фаза 14-15)
  • Реализирована полнофункциональная система управления API ключами в админ-панеле
  • Создан Model\ApiKey с методами для генерации, валидации и управления ключами
  • Реализовано SHA-256 криптографическое хеширование для безопасного хранения ключей
  • Создана админ-панель с тремя таблицами:
  • api_keys - основная таблица ключей со всеми параметрами
  • api_key_usage_logs - полное логирование всех запросов
  • api_rate_limit_counters - счетчики для контроля rate limiting
  • Добавлены 4 индекса для оптимизации производительности запросов
  • Реализована поддержка IP whitelist для ограничения источников запросов
  • Реализована фильтрация ендпоинтов с поддержкой wildcard-паттернов
  • Поддерживаются гибкие rate limits: per-hour и per-day на каждый ключ
  • Добавлена поддержка expiration date для автоматического истечения ключей
  • Реализован полный audit trail для отозвания ключей
  • ApiKeyManagementController с 8 основными методами:
  • index() - список всех ключей с фильтрацией и статистикой
  • view($id) - детальный просмотр ключа с логами использования за 30 дней
  • editForm($id) и edit($id) - редактирование параметров ключа
  • deactivate/activate/revoke - управление статусом ключа
  • delete($id) - удаление ключа со всеми логами
  • statistics() - аналитика использования (топ пользователи, топ ендпоинты, графики)
  • Создано 4 view шаблона:
  • index.php - список ключей с таблицей DataTables и модальным окном создания
  • view.php - детальная информация и логи использования
  • edit.php - форма редактирования всех параметров ключа
  • statistics.php - система аналитики на уровне всех ключей
  • Добавлено меню-пункт "API Key Management" в админ-панель для Admin и Developer ролей
  • Реализована система permissions: доступ только для Admin и Developer
  • Добавлено 60+ новых ключей локализации на 3 языках (Ukrainian, Russian, English)
  • ApiRegistrationController с поддержкой публичных API ендпоинтов
  • POST /api/auth/register - создание запроса на регистрацию пользователя через API
  • Поддерживает Bearer Token аутентификацию
  • Поддерживает X-API-Key header аутентификацию
  • Проверка IP whitelist источника запроса
  • Проверка прав ключа на доступ к ендпоинту
  • Проверка rate limiting перед обработкой
  • Валидация всех полей формы регистрации
  • Возвращает JSON с статусом и ID запроса
  • GET /api/auth/registration-status - получение статуса запроса на регистрацию
  • Поддерживает Bearer Token и X-API-Key аутентификацию
  • Возвращает текущий статус и метаданные запроса
  • GET /api/auth/check-email - проверка доступности email адреса
  • Быстрая проверка существования email в системе
  • Поддерживает аутентификацию по API ключу
  • Полная документация всех ендпоинтов в /docs/v1.1.0/API_DOCUMENTATION.md
  • SHA-256 хеширование обеспечивает что сырой ключ никогда не хранится в БД
  • Rate limiting предотвращает брутфорс и злоупотребление API
  • IP whitelist позволяет ограничить источники запросов
  • Endpoint filtering контролирует доступ к конкретным ендпоинтам
  • Полное логирование всех запросов для аудита и мониторинга
  • Bearer Token и X-API-Key поддержка двух способов аутентификации
  • Система отозвания ключей с audit trail кто и когда отозвал ключ
  • Поддержка expiration date для автоматического истечения ключей
  • Migration_20251127_001_CreateApiKeysTable содержит:
  • Создание всех 3 таблиц с правильными типами данных и ограничениями
  • PostgreSQL trigger для автоматического обновления updated_at
  • Создание 7 индексов для оптимизации производительности
  • Корректные FOREIGN KEY со ссылками на users и CASCADE удалением
  • PostgreSQL комментарии для документирования схемы
  • Методы up() и down() для миграции и откаты
  • Успешно выполнена на PostgreSQL базе данных
  • Создан файл /docs/v1.1.0/API_DOCUMENTATION.md (572 строки)
  • Полное руководство по использованию API для разработчиков
  • Секции: аутентификация, API ключи, регистрация, rate limiting, безопасность
  • Примеры запросов на PHP, JavaScript, Python, Bash
  • Полная документация всех ендпоинтов с request/response форматами
  • Коды ошибок и их описания
  • Инструкции админ-панели для управления ключами
2024-11-21
  • Реализована полнофункциональная система документации проекта
  • Создан контроллер DocsController с поддержкой парсинга Markdown
  • Реализована система поиска по всей документации
  • Добавлен контроль доступа к документам на основе ролей пользователей
  • Создана структура документации по разделам и функциональности
  • Написаны подробные руководства для всех ролей пользователей
  • Добавлена поддержка синтаксис-хайлайтинга для кодовых блоков
  • Реализована система версионирования документов через changelog
  • Создана техническая документация по архитектуре и безопасности
  • Интегрирована документация в главное меню системы
  • Добавлена навигация по документам через хлебные крошки
  • Реализована боковая панель с быстрой навигацией по разделам
2024-11-20
  • Реализирован модуль System Logs Viewer для просмотра системных логов
  • Добавлена возможность фильтрации логов по уровню серьезности
  • Реализована функция скачивания и удаления log-файлов
  • Добавлены языковые строки для системы логирования (34 записи на 3 языках)
  • Обновлена документация по RBAC в справочнике проекта
  • Добавлены вспомогательные функции форматирования размера файлов
  • Реализована цветовая кодировка уровней логирования
2024-11-19
  • Добавлена динамическая дата в подвал всех страниц системы
  • Созданы страницы Политики конфиденциальности на 3 языках (RU, UK, EN)
  • Созданы страницы Условий использования на 3 языках (RU, UK, EN)
  • Реализирован контроллер PagesController для управления статическими страницами
  • Обновлены шаблоны dashboadr.php и auth.php с динамическим годом в подвале
  • Созданы ссылки на политику и условия в подвал страниц
  • Создан новый шаблон app.php для публичных страниц
2024-11-18
  • Удален доступ роли Partner к функциям создания и редактирования контента
  • Создана страница ошибки 403.php для отображения отказа в доступе
  • Обновлен ContentController для ограничения всех методов только для администраторов
  • Реализована система проверки прав доступа на уровне контроллера
2024-11-17
  • Реализована комплексная система контроля доступа на основе ролей (RBAC)
  • Добавлены методы canAccessSection() и canPerformAction() в класс Auth
  • Создана матрица прав доступа для 11 основных разделов системы
  • Обновлено меню панели управления с динамической видимостью пунктов
  • Определена иерархия ролей: Admin > Developer > Moderator > Partner > Client
  • Документировано управление правами доступа в справочнике .claude
2024-11-16
  • Обновлен интерфейс модерации заказов в зависимости от статуса
  • Изменена логика отображения кнопок действий для различных статусов заказа
  • Скрыты кнопки "Одобрить" и "Уточнить" для заказов в статусе "Выполняется"
  • Добавлена кнопка "Завершена" для заказов в обработке

Быстрые действия