DevCraft Документации
Руководства

Публичные ресурсы оболочки v200.4.1

Теги {devcraft*}, siteAssets, страницы Admin, синк в БД и компрессия.

Введение

Оболочка публичного сайта получает CSS/JS/meta через теги в main.tpl. Состав хранится в таблицах Admin и собирается из siteAssets манифестов + ручных записей.

Теги в теме

ТегСодержимое
{devcraft}CSS + meta + JS
{devcraft-header}CSS + meta
{devcraft-scripts}только JS

Если одновременно стоят {devcraft} и split-теги — побеждает {devcraft}, split остаются пустыми.

Патч: engine/modules/main.php после $tpl->load_template('main.tpl')PublicAssetTagService.

siteAssets в манифесте

В siteAssets кладите только глобальные файлы оболочки. Page-local (админский UI, виджет на одной странице) — в assets() или inject контроллера.

use DevCraft\Builders\ModuleSiteAssetsBuilder;

->siteAssets(
	ModuleSiteAssetsBuilder::create()
		->js('connections.js')   // modules/{M}/Public/
		->css('connections.css')
		// или путь от корня сайта:
		// ->js('devcraft/src/templates/core/assets/js/dc_public.js')
)

Контракт: ModuleSiteAssets, builder: ModuleSiteAssetsBuilder.

Синк в БД

При первом заходе на публичную страницу с тегами:

  1. PublicAssetSeedServicedc_public.js
  2. PublicAssetManifestSyncService — все манифесты с непустым siteAssets

Таблицы: dc_public_assets, dc_public_headers.

Страницы Admin

UI как у Connections: Metro-таблица (поиск), колонка с ручкой DnD (mif-move), переключатель «Активен». Добавление — модалка (Добавить → форма → сохранить → строка в таблице). Логика — admin.js (DevCraftAdmin.PublicAssets).

Формы добавления — PublicAssetAdminFormService (FormSchema + Metro field_row).

Автозаписи (origin=auto) нельзя удалить — только выключить. DnD задаёт порядок и флаг public_assets_list_manually_ordered_{css|js|meta}.

Компрессия

Настройка Admin «Публичные ресурсы» → public_assets_compress. Бандл: PublicAssetBundleCacheService + PublicAssetMinify.

Что не класть в siteAssets

  • Admin panel JS (admin.js, dleapi.js, db_manager.js, …)
  • Page-local тема (templates/{skin}/devcraft/...)
  • connections_admin.js / виджеты одной страницы

Связанные разделы

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