ForgeCMS
sk

CMS

Stránky, layouty, navigácia, premenné a presmerovania v CMS Total.js

CMS · cms@8071e48 cmspageslayoutsnavigationredirectsvariablessitemap

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 url prázdne, CMS ju vytvorí z názvu: Hello World sa stane /hello-world/ a pod nadradenou stránkou adresa začína adresou nadradenej stránky.
  • Verejný web obslúži stránku, keď sa jej url rovná požadovanej adrese, nie je disabled a jej language, ak je nastavený, sa rovná jazyku požiadavky.
  • Odpoveď dostane <title> (title alebo name, 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 auth sa obslúžia len prihlásenému návštevníkovi. CMS sa pýta vášho kódu, kto je návštevník: definujte FUNC.auth = function($) { ... } (napríklad v súbore v definitions/) a zavolajte $.success(user). Bez tejto funkcie sú všetci anonymní a stránka auth odpovie 404.
  • Vypnutá stránka, neznáma adresa a stránka iného jazyka odpovedajú 404. Sitemapa /sitemap.xml uvá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 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.