ForgeCMS
cs

CMS

Stránky, layouty, navigace, proměnné a přesměrování v CMS Total.js

CMS · cms@8071e48 cmspageslayoutsnavigationredirectsvariablessitemap

CMS uchovává HTML každého layoutu a stránky jako soubor a jejich data (adresa, titulek, layout...) v metadatech webu. Požadavek na veřejný web najde stránku podle adresy a vykreslí ji uvnitř jejího layoutu.

Layouty

Layout je úplný dokument HTML. Prvek s id="CMS" označuje místo, kam jde 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 přijímá name, icon, color, html a seznam scripts, které se přidají ke každé stránce layoutu. V HTML se $NAME nahradí proměnnou s tímto názvem (viz níže) a @{year} aktuálním rokem.

Stránky

Stránka má name, layoutid (povinné), adresu url a volitelně title, description, keywords, language, parentid, icon, color a příznaky disabled, auth, pinned a nocache. Její HTML (uložené přes pages_save_html) je to, co jde dovnitř prvku id="CMS".

  • Pokud necháte url prázdné, CMS ji vytvoří z názvu: Hello World se stane /hello-world/ a pod nadřazenou stránkou adresa začíná adresou rodiče.
  • Veřejný web obslouží stránku, když se její url rovná požadované adrese, není disabled a její language, pokud je nastaven, se rovná jazyku požadavku.
  • Odpověď dostane <title> (title nebo name, následovaný názvem webu u každé stránky kromě /), popis a klíčová slova, skript, který počítá návštěvy (/visitors.js), a styl widgetů, které stránka používá.
  • Stránky auth se obslouží jen přihlášenému návštěvníkovi. CMS se ptá vašeho kódu, kdo je návštěvník: definujte FUNC.auth = function($) { ... } (například v souboru v definitions/) a zavolejte $.success(user). Bez této funkce jsou všichni anonymní a stránka auth odpoví 404.
  • Vypnutá stránka, neznámá adresa a stránka jiného jazyka odpovídají 404. Sitemapa /sitemap.xml uvádí stránky, které nejsou vypnuté.

Proměnné

Plugin Variables uchovává seznam dvojic NAME: value (Variables|save s vars). Každé $NAME v layoutu nebo stránce se při obsluze stránky změní na svou hodnotu, což se hodí pro telefon, název firmy nebo odkaz, který se objevuje na mnoha místech. Neznámé $NAME zůstane tak, jak je napsáno.

Navigace je menu popsané v administraci (název a strom odkazů s name, url, title, icon, color, target, hidden, highlight a children) a vykreslené vaším layoutem pomocí šablony psané 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>

Při uložení layoutu se vytvoří navigace s názvem main, pokud neexistuje; poté upravte její odkazy v pluginu Navigace. V šabloně je value.children seznam viditelných odkazů a value.url obsluhovaná adresa. Skriptu dejte name; s pouhým id jej kompilátor přijme, ale uložení layoutu neodpoví.

Existuje také <script type="text/breadcrumb"> pro cestu nadřazených stránek.

Přesměrování

Přesměrování má url, target a permanent. Veřejný web kontroluje přesměrování před stránkami: /old/ odpovědělo stránkou /about/, když byl jeho cíl /about/.

Mezipaměť

Zkompilované stránky se ukládají do mezipaměti; uložení stránky, layoutu, widgetu nebo proměnné vymaže, co na nich závisí, a služba, která běží každé dvě minuty, vymaže i zkompilovaná zobrazení.