Maksoft.net

Maksoft CMS – Theme v1 Architecture дефинира ясна граница между engine логиката и theme представянето. Архитектурата гарантира:

  • Единен runtime поток
  • Един обект на страница ($o_page)
  • Без дублиране на pipeline логика
  • Hooks като основен механизъм за разширяване
  • Theme слой само за presentation
  • Blocks се подават като ViewData (streams), не като HTML
  • DOM markers (data-*) се генерират от ThemeMapper

Maksoft CMS – Theme v1 Pipeline

Maksoft CMS – Theme v1 Architecture

Engine Layer

/engine
    /app
        /runtime
            ThemeRuntime.php
            LegacyExecution.php
        /render
            ShortcodeEngine.php
        /extensions
            LegacyPageUrlExtension.php
        /theme
            (future: ThemeBootstrap.php)

Theme Layer

/themes
    /ms
        _bootstrap.php
        /base
            /none
                index.php
                /blocks
                    gallery.php
                    hero.php
                    cta.php
            cms_assets.php
            functions.php

Runtime Flow

page.php
    ↓
resolveTheme()
    ↓
load theme.json
    ↓
include theme index.php
    ↓
ThemeRuntime::boot()
    ↓
$o_page->hook(...)
    ↓
render_assets()

Data Pipeline

loader.php
    ↓
init_page_blocks()
    ↓
PageData
    ↓
ThemeMapper
    ↓
ViewData
    ↓
theme/index.php
    ↓
block templates
    ↓
HTML
    ↓
page cache

ViewData Structure

view
 ├ context
 ├ auth
 ├ user
 ├ user_context
 ├ site
 ├ page
 │   └ streams
 │       └ main
 │           └ blocks[]
 └ theme

Block Rendering

foreach ($view['page']['streams']['main']['blocks'] as $block) {
    include $view['theme']['dir'].'/blocks/'.$block['type'].'.php';
}

DOM Integration

ThemeMapper добавя стандартни DOM markers за JS lifecycle:

data-block
data-id
data-editable

Theme JavaScript инициализира функционалност чрез:

document.querySelectorAll("[data-block]")

Key Principles

  • Single page object ($o_page)
  • No duplicated pipeline
  • Hooks as extension mechanism
  • PageURL as Extension
  • Assets managed only by legacy asset registry
  • Theme = presentation only
  • CMS provides data structure (streams)
  • Themes render blocks
  • DOM markers act as JS integration API

Начало /  /  / Документация / Архитектура - Engine Layer
Maksoft.Bg Maksoft.Net BrandIT