Stránky, layouty, navigácia, premenné a presmerovania v CMS Total.js
CMS uchováva HTML každého layoutu a stránky ako súbor a ich údaje (adresa, titulok, layout...) v metadátach webu. Požiadavka na verejný web nájde stránku podľa adresy a vykreslí ju vo vnútri jej layoutu.
Layouty
Layout je úplný dokument HTML. Prvok s id="CMS" označuje miesto, kam ide obsah stránky:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<header>$SITE</header>
<div id="CMS"></div>
<footer>@{year}</footer>
</body>
</html>Layouts/save prijíma name, icon, color, html a zoznam scripts, ktoré sa pridajú ku každej stránke layoutu. V HTML sa $NAME nahradí premennou s týmto názvom (pozri nižšie) a @{year} aktuálnym rokom.
Stránky
Stránka má name, layoutid (povinné), adresu url a voliteľne title, description, keywords, language, parentid, icon, color a príznaky disabled, auth, pinned a nocache. Jej HTML (uložené cez pages_save_html) je to, čo ide dovnútra prvku id="CMS".
- Ak necháte
urlprázdne, CMS ju vytvorí z názvu:Hello Worldsa stane/hello-world/a pod nadradenou stránkou adresa začína adresou nadradenej stránky. - Verejný web obslúži stránku, keď sa jej
urlrovná požadovanej adrese, nie jedisableda jejlanguage, ak je nastavený, sa rovná jazyku požiadavky. - Odpoveď dostane
<title>(titlealeboname, nasledované názvom webu pri každej stránke okrem/), popis a kľúčové slová, skript, ktorý počíta návštevy (/visitors.js), a štýl widgetov, ktoré stránka používa. - Stránky
authsa obslúžia len prihlásenému návštevníkovi. CMS sa pýta vášho kódu, kto je návštevník: definujteFUNC.auth = function($) { ... }(napríklad v súbore vdefinitions/) a zavolajte$.success(user). Bez tejto funkcie sú všetci anonymní a stránkaauthodpovie 404. - Vypnutá stránka, neznáma adresa a stránka iného jazyka odpovedajú 404. Sitemapa
/sitemap.xmluvádza stránky, ktoré nie sú vypnuté.
Premenné
Plugin Variables uchováva zoznam dvojíc NAME: value (Variables|save s vars). Každé $NAME v layoute alebo stránke sa pri obsluhe stránky zmení na svoju hodnotu, čo sa hodí pre telefón, názov firmy alebo odkaz, ktorý sa objavuje na mnohých miestach. Neznáme $NAME zostane tak, ako je napísané.
Navigácia
Navigácia je menu opísané v administrácii (názov a strom odkazov s name, url, title, icon, color, target, hidden, highlight a children) a vykreslené vaším layoutom pomocou šablóny písanej v Tangular. Do layoutu vložte skript:
<nav>
<script type="text/navigation" name="main">
{{ foreach m in value.children }}
<a href="{{ m.url }}"{{ if m.url === value.url }} class="on"{{ fi }}>{{ m.name }}</a>
{{ end }}
</script>
</nav>Pri uložení layoutu sa vytvorí navigácia s názvom main, ak neexistuje; potom jej odkazy upravte v pluguine Navigácia. V šablóne je value.children zoznam viditeľných odkazov a value.url adresa, ktorá sa obsluhuje. Skriptu dajte name; s iba id ho kompilátor prijme, ale uloženie layoutu neodpovie.
Existuje aj <script type="text/breadcrumb"> pre cestu nadradených stránok.
Presmerovania
Presmerovanie má url, target a permanent. Verejný web kontroluje presmerovania pred stránkami: /old/ odpovedalo stránkou /about/, keď bol jeho cieľ /about/.
Vyrovnávacia pamäť
Skompilované stránky sa ukladajú do vyrovnávacej pamäte; uloženie stránky, layoutu, widgetu alebo premennej vymaže, čo od nich závisí, a služba, ktorá beží každé dve minúty, vymaže aj skompilované zobrazenia.