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

Установка v200.1.0

Особые шаги DLE API после общей установки плагина DevCraft.

Как поставить zip через менеджер плагинов DLE, скрипт архива или копирование upload/ — в общей инструкции: Установка плагинов.

Ниже — только то, что специфично для DLE API.

Требования модуля

КомпонентВерсия
DataLife Engine≥ 20.0
PHP≥ 8.3
DevCraft Admin≥ 200.4.0
MySQL / MariaDBInnoDB (Foreign Keys)

Сначала DevCraft Admin

Установите и настройте DevCraft Admin, затем DLE API.

После установки плагина

Проверьте, что на сайте появились:

  • engine/inc/dleapi.php — stub админки DLE
  • devcraft/src/modules/DleApi/ — модуль DevCraft
  • api/ — runtime /api/v2, Fluent, Schemas, SDK
  • локаль devcraft/locales/ru_RU/dleapi.xliff

Composer в api/

Зависимости API лежат в каталоге api/ (не только в devcraft/):

cd api && composer install

Общий Composer для DevCraft: Установка плагинов и Composer.

Таблицы API

Откройте модуль DLE API в DevCraft. При первом обращении Cycle создаст таблицы {prefix}_api_keys, {prefix}_api_scope, {prefix}_api_oauth_* (миграции в devcraft/src/database/migrations/). В install.xml DDL этих таблиц нет.

Дальше

  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;
}

См. также

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