Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Добавлено
- Публичные теги оболочки {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 в ядре 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:
luginExports().
- 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 сохраняет _ и -; 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. Иначе окно открывалось без кнопок (только крестик).
Основные изменения
- Ребрендинг: MHAdmin → DevCraft с новым разделом админки (?mod=devcraft)
- Добавлена поддержка DataLife Engine 20.0
- Миграция UI-фреймворка: Semantic UI / Fomantic UI заменен на Metro UI для форм, тогглов, календарей и таблиц
- Очистка зависимостей: Выпилены тяжелые UI-зависимости (Fomantic, jquery-confirm, bootstrap-suggest) в пользу унифицированной библиотеки Metro UI
- Файловая структура: Файлы плагина перенесены из директории engine/inc/maharder/ в devcraft/
- Улучшения дашборда: Расширен функционал сервиса пакетов — добавлены отдельные методы для недостающих пакетов и фильтрации по коду приложения/плагина
- Экспорт БД: Добавлен AJAX-хендлер для экспорта выбранных таблиц базы данных в SQL
- Теги шаблона новостей: Новый модуль для процессинга тегов в шаблоне новостей с саппортом метаданных
- Очистка манифеста: Из конфига удалена информация об авторе и неиспользуемые линки на лицензии
- Минорные фиксы: Добавлена условная логика Metro UI для textarea, обновлены шаблоны issue на GitHub, пофикшены опечатки
- [NEW] Добавлен метод сохранения конфигурации плагина, saveConfig в классе DataManager
- [FIX] Исправлена функция joinPaths для корректной обработки путей, особенно в средах Windows
- [FIX] Исправлены проблемы с переменными при генерации новых модулей.
- Обновлен номер версии
Обновлена версия модуля в manifest.json и maharder.php.- Переназначение старых стилей и скриптов
В Admin.php заменены устаревшие ссылки на стили и скрипты на tinymce.min.js и typograf.min.js.- Новые методы в TwigFilter.php
Добавлены методы создания фильтров диапазона (createRangeFilter()) и диапазона даты (createDateRangeFilter()) в TwigFilter.php.- Дополнения в BasisModel.php
В BasisModel.php добавлены поля creator и lastEditor и связанные с ними методы.- Новый метод createOrUpdate()
Добавлен новый метод createOrUpdate() в MhDB.php для обработки создания или обновления сущностей.- Изменение в AjaxAbstractResponse.php
В AjaxAbstractResponse.php изменена обработка ответа, позволяя устанавливать данные и метаданные как массив или строку.- Фиксация успешного флага
Исправлен флаг успеха в ErrorResponseAjax.php на false для указания на неудачу.- Новая функция getFullUserGroups()
В DleData.php добавлен новый метод getFullUserGroups() для получения пользовательских групп, отсортированных по имени.- Очистка кода и комментариев
Проведена работа над форматом кода и комментариев для лучшей читаемости и последовательности.- Добавлены новые методы в AdminUrlExtension.php
Включают методы получения информации о пользователе (getUserInfo, getUserGroupInfo, и getCurrentUser).- Документация для методов
Обновление существующих методов для включения комментариев к документации с подробным описанием их функциональности.- Упрощение формирования URL
Упрощен методы getAssetsUrl и getModulesUrl для формирования URL.- Метод getSiteUrl
Добавлен метод getSiteUrl для генерации URL.- Логирование для версии 173.3.4
Добавлено логирование для версии 173.3.4 в changelog.php.- Изменение обработки хлебных крошек
В logs.php изменена работа с хлебными крошками для более кратких заголовков страниц.- Рефакторинг index.php
index.php переработана путем устранения устаревших проверок, связанных с Composer и изменением флага отладки на true.- Расширение функциональности фильтра
Расширена функциональность фильтра в filter.twig.- Новые макросы в input.twig
Добавлены новые макросы в input.twig для улучшения обработки шаблоны.- Добавление meta.twig
Реализовано отображение метаданных пользователя для сущностей с помощью нового файла meta.twig.- Улучшение форматирования base.html
Форматирование и отступы в base.html улучшены для легкости чтения.- Добавлены переменные в base.html
Добавлены переменные lang_iso и cache_id для идентификации языка и кэша.- Модификация addInput.html
В addInput.html добавлено двоеточие к placeholder для более ясного приглашения к вводу.- Рефакторинг addTextarea.html
В addTextarea.html упрощена установка текстового редактора путем замены инициализации на вызов initTinyMce.
- [FIX] Исправлена работа с composer
- [FIX] Исправлена проблема цикличности в классе переводов
Обновление!ДАННАЯ ВЕРСИЯ НЕ СОВМЕСТИМА С ПРЕДЫДУЩИМИ! УДАЛИТЕ ПРЕДЫДУЩУЮ ВЕРСИЮ! (за исключением конфигураций)
- [NEW] Добавлена мультиязычная поддержка, перевод можно осуществить при помощи сервиса Crowdin. Ссылка в подвале каждого модуля.
- [NEW] Добавлена возможность выводов логов на отдельной странице.
- [NEW] Добавлено моделирование таблиц в базе данных при помощи Cycle ORM. Это поможет в дальнейшем создавать модули с более сложной структурой и работу с данными.
- [NEW] Все изменения в таблицах будут храниться в отдельной таблице "migrations" и в папке "_migrations". Это позволит легко сделать откат изменений.
- [NEW] Добавлена возможность сортировать и фильтровать данные таблиц на страницах административной панели (где такие есть, пример: Логи).
- [NEW] Добавлена возможность проверять на обновление плагина на сайте devcraft.club. Используется гостевой ключ.
- [UPDATE] Минимальная версия PHP 8.3
- [UPDATE] Функционал обновлён до версий DLE 17.3
- [UPDATE][BETA] Установщик упрощён. Теперь зависимости загружаются и устанавливаются при первом открытии [любого] модуля. Может занять несколько минут. Теперь установщик весит мало.
- [UPDATE] Откат функций, которые использовали класс DLEFiles. Он не работает со сторонними разработками как надо. Либо работает, но документации к нему то нет.
- [UPDATE] Изменена структура файлов админпанели. Теперь все файлы модуля находятся в папке "_modules", a шаблоны в папке "_templates".
- [DELETE] Удалены устаревшие и ненужные методы логирования.
- [DELETE] Удалена замена иконок в админпанели DLE.