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

Установка 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 / MariaDBInnoDB (внешние ключи)

Сначала 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] (таблица не найдена):

  1. Убедитесь, что установлен DevCraft Admin ≥ 200.4.1.
  2. Удалите кэш devcraft/cache/cycle_orm_schema.ser.
  3. Снова откройте раздел DLE API в админке — migrator создаст недостающие таблицы.

Дальше по настройке

  1. Создайте API-ключ и при необходимости OAuth-клиент.
  2. Проверьте .env (DEMO_MODE=false, если нужны токены).
  3. Авторизацияэндпоинты.

Профиль на сайте (опционально)

Кнопка «Запросить ключ» сама не появляется. Нужны include в скине и флаги в Настройках. Теги шаблона: Шаблоны.

  1. Включите Показывать блок / Разрешить генерировать и задайте уровень или синхронизацию групп.
  2. В userinfo.tpl (без [own-profile]):
{include file="engine/modules/devcraft/dleapi_profile.php"}
  1. В main.tpl перед </body>:
[available=userinfo]
{include file="engine/modules/devcraft/dleapi_profile.php?focus=js"}
[/available]
  1. Очистите кеш шаблонов. Переопределить вид: скопируйте 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;
}

См. также

На этой странице