Установка v200.1.1
Как поставить DLE API после DevCraft Admin: Composer в api/, таблицы, профиль, nginx.
Как поставить ZIP через менеджер плагинов DLE, скрипт архива или копирование upload/ — в общей инструкции: Установка плагинов.
Ниже — только то, что специфично для DLE API.
Требования модуля
| Компонент | Версия |
|---|---|
| DataLife Engine | ≥ 20.0 |
| PHP | ≥ 8.3 |
| DevCraft Admin | ≥ 200.4.1 |
| MySQL / MariaDB | InnoDB (внешние ключи) |
Сначала DevCraft Admin
Установите и включите DevCraft Admin, затем DLE API. Без оболочки модуль в админке не поднимется как задумано, а таблицы api_* не создадутся через Cycle.
После установки плагина
На сайте должны появиться:
engine/inc/dleapi.php— тонкий вход в админку DLE;devcraft/src/modules/DleApi/— модуль DevCraft (ключи, OAuth, настройки);api/— runtime/api/v2(Slim, OAuth2, OpenAPI);- локаль
devcraft/locales/ru_RU/dleapi.xliff.
In-process SDK (DcApi) — в DevCraft Admin: devcraft/src/sdk/dle/, не в этом ZIP.
Composer в api/
Зависимости HTTP-слоя лежат в api/ (отдельно от devcraft/):
cd api && composer installОбщий Composer для оболочки: Установка плагинов и Composer.
Таблицы API
Откройте модуль DLE API в DevCraft. Таблицы создаёт Cycle ORM Admin (не DDL в install.xml):
{prefix}_api_keys,{prefix}_api_scope{prefix}_api_access_levels,{prefix}_api_access_level_scopes,{prefix}_api_access_level_groups{prefix}_api_key_requests{prefix}_api_oauth_*
Миграции пишутся в devcraft/src/database/migrations/ при пересборке схемы ORM (см. DatabaseGateway в Admin ≥ 200.4.1).
Если видите SQLSTATE[42S02] (таблица не найдена):
- Убедитесь, что установлен DevCraft Admin ≥ 200.4.1.
- Удалите кэш
devcraft/cache/cycle_orm_schema.ser. - Снова откройте раздел DLE API в админке — migrator создаст недостающие таблицы.
Дальше по настройке
- Создайте API-ключ и при необходимости OAuth-клиент.
- Проверьте
.env(DEMO_MODE=false, если нужны токены). - Авторизация → эндпоинты.
Профиль на сайте (опционально)
Кнопка «Запросить ключ» сама не появляется. Нужны include в скине и флаги в Настройках. Теги шаблона: Шаблоны.
- Включите Показывать блок / Разрешить генерировать и задайте уровень или синхронизацию групп.
- В
userinfo.tpl(без[own-profile]):
{include file="engine/modules/devcraft/dleapi_profile.php"}- В
main.tplперед</body>:
[available=userinfo]
{include file="engine/modules/devcraft/dleapi_profile.php?focus=js"}
[/available]- Очистите кеш шаблонов. Переопределить вид: скопируйте
templates/Default/devcraft/dleapi/в свою тему.
Без шага с JS в блоке будет «DevCraftPublic недоступен». Гость чужой ключ не видит; админ на чужом профиле может одобрять заявки.
Редирект /api → /api/v2
Apache: правила уже в api/.htaccess.
nginx (фрагмент server):
location = /api {
return 308 /api/v2/;
}
location /api/v1 {
rewrite ^/api/v1/?(.*)$ /api/v2/$1 permanent;
}
location /api/v2/ {
try_files $uri /api/v2/index.php?$query_string;
}