Maksoft.net

cms_assets е централен регистър на CSS/JS ресурси.
Всеки asset се описва на едно ниво (default), напълно съвместимо със сегашния едномерен формат, и по избор може да съдържа вложен масив versions за алтернативни версии.
Root (default) дефиницията винаги е fallback и може да съдържа допълнителна логика (напр. js_after, noConflict, shims).

Пример: 

'bootstrap' => array(
// default (min supported)
'css_file' => 'https://cdn.jsdelivr.net/npm/bootstrap@3.4.1/dist/css/bootstrap.min.css',
'js_file' => 'https://cdn.jsdelivr.net/npm/bootstrap@3.4.1/dist/js/bootstrap.min.js',

// optional versions
'versions' => array(
5 => array(
'css_file' => 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css',
'js_file' => 'https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js'
)
)
),

Методи, които работят с cms_assets

  • add_asset($key, $version = null)
    Регистрира логически asset по ключ. Ако е подадена версия, тя override-ва default; ако не — използва root дефиницията.

  • normalize_asset() / вътрешен resolver
    Обединява root дефиницията с избраната версия (ако има), така че към рендера винаги да стига един финален, плосък asset.

  • render_assets('css' | 'js')
    Рендерира всички регистрирани assets, без дублиране, в съответната секция (head за CSS, footer за JS).

Къде дефинираме кои CMS assets се ползват?

Кои assets се използват се дефинира декларативно в PHP, извън HTML-а:

  • глобално — в /functions.php (CMS level, общи зависимости);

  • за всички теми — в /Templates/functions.php (default поведение);

  • за конкретна тема — в /Templates/themeX/functions.php (override при нужда).

Темите не включват файлове директно, а само заявяват логически зависимости чрез add_asset().

 

Как ги вмъкваме в кода на темплейта?

В HTML темплейтите няма директни <link> и <script> за CMS библиотеки.
Assets се рендерират централизирано чрез pipeline-а:

  • CSS ресурсите в <head> началото (обикновено в meta_tags.php):
    $o_page->render_assets('css');

  • JS ресурсите в края след зареждане преди </body> (обикновено във footer_inc.php):

Така всички CSS и JS ресурси се подреждат, дедублицират и управляват централно, без промени по отделните теми.


Начало /  /  / Документация /  / Регистър за ресурси CMS_ASSETS
Maksoft.Bg Maksoft.Net BrandIT