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

История изменений

Журнал изменений DevCraft Admin.

200.4.1 — 2026-09-10

Добавлено

  • Публичные теги оболочки {devcraft} / {devcraft-header} / {devcraft-scripts}: подстановка после load_template('main.tpl') (патч engine/modules/main.php). Состав — три страницы Admin (стили / скрипты / заголовки) + автосинк siteAssets из манифестов; компрессия — настройка «Публичные ресурсы». Манифест: ModuleManifestBuilder::siteAssets() / ModuleSiteAssets. Гайд: Публичные ресурсы оболочки. Справочник: PublicAssetTagService, ModuleSiteAssets и связанные классы Admin.
  • Публичный шаблонизатор DLE (dle_template): у [if] — опциональный [else]; новый блок [has value="…" condition="!=" comparison=""] с [else]. Включается только при compile(..., true). Поставка — патч engine/classes/templates.class.php в install.xml Admin (маркеры // DevCraft Admin). Гайд: Условия в шаблонах DLE.
  • Опциональный блок статистики на pages/dashboard.twig: передайте dashboard.stats (список {key,label,value,icon,url}) и опционально stats_title — карточки рендерятся сразу под hero. Пример: Connections DashboardStatsService.
  • DLE SDK в ядре Admindevcraft/src/sdk/dle/ (DcApi, DevCraft\Dle\Schema\*, DevCraft\Dle\Fluent\*, DevCraft\Dle\Xfield\*). Переехал из пакета DLE API: сателлитам больше не нужен установленный HTTP API, DcApi доступен сразу после devcraft/init.php. Выбор слоя — Слои данных.
  • Мост equality TableQueryQueryBuilderTableQuery::toQueryBuilder() / TableQuery::fromQueryBuilder(): columns / равенства / order / limit / offset. LIKE, отрицание, RelationMap и whereXfield() не переносятся (SdkException с кодом query_bridge_unsupported).
  • Экспорт плагина из БДPluginPresenter()->withName(...)->export(?$path, bool $archivate = false): install.xml как download в админке DLE; при $archivate — ZIP с XML в корне и файлами из plugins.filelist. Путь по умолчанию: настройка Admin Пути → plugin_exports_path / Paths::pluginExports().
  • SDK Schema mail-кампанийMailCampaignsSchema / MailCampaignUsersSchema по DDL DLE 21 (mail_campaigns, mail_campaign_users); SchemaTableNames, RelationMap, TableRowUnion.

Изменено

  • Namespace SDK — DleApi\{Schema,Fluent,Xfield,Sdk}DevCraft\Dle\.... Фасад DcApi и сигнатуры методов не изменились.
  • Публичный include сателлитов: канон — devcraft/src/modules/{Name}/Controller/show_*.php (путь от корня сайта). Не engine/modules/devcraft/ для новых модулей; в engine/ только admin glue и патчи по необходимости. См. PHP DevCraft Standards.
  • Шлюз БД / схема: логика вынесена в SchemaSyncService. Debug Admin → SyncTables после наката ожидающих; без debug — файл только при реальном diff и сразу накат. Кэш схемы без лишней пересборки. Гайд: Схема шлюза БД и автор записи.
  • Автор записи (creator / lastEditor на AbstractEntity): только поведения Cycle; beforeSave больше не пишет автора. ID из $member_id['user_id'] или 0.

Устарело

  • Имена классов DleApi\{Schema,Fluent,Xfield,Sdk}\* — работают через автоматические алиасы, будут удалены в следующем мажоре.

Исправлено

  • Cycle ORM / DatabaseGateway: синхронизация схемы — SchemaSyncService, без безусловного GenerateMigrations на каждый промах кэша. Recovery: удалить devcraft/cache/cycle_orm_schema.ser и снова открыть админку / модуль.
  • SDK create() — INSERT шёл через builder Cycle, у которого префикс уже настроен, из-за чего таблица искалась как PREFIX_PREFIX_post. Префикс больше не удваивается.
  • SDK и USERPREFIXadmin_logs, banned, twofactor, conversations*, social_login, ignore_list, downloads_log, lostdb, mail_log использовали PREFIX. На установках с разными PREFIX / USERPREFIX запросы шли не в ту таблицу.
  • SDK Schema типы (install + dump DLE 21): category.schema_org, storage.name, vote.datestring; rss.categoryint.
  • Канон сателлитов: публичный слой Controller/; патчи DLE — маркеры // DevCraft {Name}: start / end.
  • Генератор модулей: latin/toTranslit сохраняет _ и -; Identity MODULE=%dir%, CODE=%latin%; каталог — PascalCase от имени; engine/inc без префикса dle_.
  • Ассеты модуля: layout.twig подключает не только assets.js, но и assets.css из манифеста (module_css_urls / PluginContext::cssAssetFiles). Без этого CSS из Public/ сателлита не загружался.
  • Окна Metro (DevCraft.Metro.dialogCreate): кнопки из actions / caption (старый вызов) приводятся к Metro 5 customButtons / text. Иначе окно открывалось без кнопок (только крестик).

200.4.0 (документация и API типов)

Добавлено

  • Fluent TypesModuleManifestBuilder, ChangelogBuilder, ModuleAjaxConfigBuilder (в т. г. publicMethod для публичного AJAX). Dual accept: manifest.php / settings.schema.php / changelog принимают массив или готовый DTO. Гайд: Fluent Types.
  • Документация версионирования плагинов (major = DLE без точки).
  • QueryBuilder + DataLoader; enum SortDirection.
  • QueryBuilder / DataLoaderService: insert / update / delete через Cycle; values + Fragment для инкрементов; reload после записи; DELETE только с conditions.

Breaking

  • DataLoaderService и DleDataService — только static API (::loadData, ::users, …). Удалены Application::dataLoader() / dleData().
  • QueryBuilder: selects/wherecolumns/conditions; write-payload — отдельно values.

Upload API (после 200.4.0)

Добавлено

200.4.0

Добавлено

  • DevCraft Admin — преемник MHAdmin (?mod=devcraft), DLE 20.0.
  • Metro UI вместо Semantic / Fomantic.
  • Логи с AJAX-таблицей и фильтрами.
  • Обновление assets с assets.devcraft.club.
  • Генератор модулей.
  • Локали: ru, en, de, uk.

Изменено

  • Каталог плагина: devcraft/ вместо engine/inc/maharder/.
  • Меню «Страницы DLE», changelog с группами added/changed/fixed.

Удалено

  • MHAdmin / ?mod=maharder, Fomantic, Font Awesome Pro в комплекте.

Исправлено

  • Фильтры на странице логов.

Предыдущие версии

MH Admin (Legacy)

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