-
PAGE Structure (v2)
PAGE (данни за страница)
-
id – вътрешно уникално ID
-
n – номер на страница (Maksoft CMS)
-
type – тип съдържание (
page | stream_item) -
status – статус на публикуване
-
name – кратко име (меню)
-
title – SEO заглавие
-
url – пълен адрес
-
parent_id – родителска страница (0 = корен)
-
order – ред на подредба
content (съдържание)
-
text – plain текст
-
html – HTML съдържание
-
excerpt – кратък откъс
-
description – описание (за meta/preview)
meta (SEO данни)
-
title – SEO title
-
description – SEO description
-
keywords – масив ключови думи
-
tags – суров текст с тагове
media (медия ресурси)
main_image (основна снимка)
-
id – ID на медия
-
kind – тип медия (image/video/other)
-
src – URL / път
-
alt – alt текст
origin (произход медия)
-
type –
local | external | proxy -
provider – име на източник
-
original_url – оригинален URL
prices (списък с цени)
Масив с ценови обекти.
breadcrumbs (навигационна пътека)
Масив от:
-
id
-
name
-
url
streams (потоци съдържание)
Масив от Stream обекти.
Потоците се рендерират последователно от темата.
Stream
-
id – идентификатор на потока
-
kind –
relation | group | feed | search | custom -
binding –
strong | weak | virtual -
role – семантична роля (
subpages | group_pages | feed_items | search_results | related | custom)
Stream: children (директни подстраници)
-
kind = relation
-
binding = strong
items → Card[]
Stream: group_pages (страници от асоциирана група)
-
kind = group
-
binding = weak
group (данни за група)
-
id – ID група
-
title – име група
items → Card[]
Stream: feeds (външни потоци)
Масив от StreamFeed.
StreamFeed
-
id – ID feed
-
kind – feed
-
binding – virtual
-
source –
db | http | api -
type – тип достъп (rss/json/api/custom)
-
url – адрес на API / източник
cache (правила за кеширане)
-
ttl_sec – време на живот
-
stale_while_revalidate_sec – подновяване
index (правила за индексиране)
-
enabled – включено/изключено
-
key – ключ за индекс
items → Card[]
raw (debug данни)
-
kept – пази ли се raw
-
hash – версия / хеш
Card (унифициран елемент)
Всички items в streams използват единен модел Card.
-
id – уникален ключ
-
n – номер в Maksoft (ако има)
-
type – тип карта (
page | article | product | place | custom) -
title – заглавие
-
url – линк
-
summary – кратко резюме
media (за карта)
main_image → Media
origin (произход на картата)
-
stream – от кой поток идва
-
source –
db | http -
binding –
strong | weak | virtual -
group_id – ID група (ако е group)
-
feed_id – ID feed (ако е feed)
meta (карта)
-
external_canonical – каноничен външен URL
children (preview под-елементи)
-
items – масив от Card (лек preview модел)
extensions
Engine-specific данни (например
extensions.ms)
show_group_id (Maksoft специфично)
Поле в PAGE, което указва асоциирана група.
-
Ако > 0 → генерира се stream group_pages
Йерархичен приоритет при рендериране
-
search_results (ако съществува)
-
children (subpages)
-
group_pages
-
feed_items
-
custom
Темата може да пропуска, но редът е препоръчителен.
Основни принципи
-
PAGE управлява display
-
Streams нямат display логика
-
Card е унифициран публичен модел
-
Media е отделен унифициран обект
-
Йерархията чрез parent_id е задължителна
-
Virtual страници използват същата PAGE структура
-
Extensions изолират Maksoft-specific данни
-