История изменений
Журнал изменений 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.xmlAdmin (маркеры// DevCraft Admin). Гайд: Условия в шаблонах DLE. - Опциональный блок статистики на
pages/dashboard.twig: передайтеdashboard.stats(список{key,label,value,icon,url}) и опциональноstats_title— карточки рендерятся сразу под hero. Пример: ConnectionsDashboardStatsService. - DLE SDK в ядре Admin —
devcraft/src/sdk/dle/(DcApi,DevCraft\Dle\Schema\*,DevCraft\Dle\Fluent\*,DevCraft\Dle\Xfield\*). Переехал из пакета DLE API: сателлитам больше не нужен установленный HTTP API,DcApiдоступен сразу послеdevcraft/init.php. Выбор слоя — Слои данных. - Мост equality
TableQuery↔QueryBuilder—TableQuery::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 и USERPREFIX —
admin_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.date—string;rss.category—int. - Канон сателлитов: публичный слой
Controller/; патчи DLE — маркеры// DevCraft {Name}: start/end. - Генератор модулей: latin/
toTranslitсохраняет_и-; IdentityMODULE=%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 5customButtons/text. Иначе окно открывалось без кнопок (только крестик).
200.4.0 (документация и API типов)
Добавлено
- Fluent Types —
ModuleManifestBuilder,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/where→columns/conditions; write-payload — отдельноvalues.
Upload API (после 200.4.0)
Добавлено
DevCraft.Ajax.postMultipart— multipart с прогрессом.- Twig
core/includes/upload/drop_form.twig. UploadedFile,FileResponse.FormFieldBuilder::editor(),FormFieldBuilder::codeViewer().
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 в комплекте.
Исправлено
- Фильтры на странице логов.