Pagina’s, layouts, navigatie, variabelen en doorverwijzingen in het Total.js CMS
Het CMS bewaart de HTML van elke layout en pagina als bestand en hun gegevens (adres, titel, layout...) in de metagegevens van de site. Een verzoek aan de openbare site vindt een pagina op haar adres en rendert haar binnen haar layout.
Layouts
Een layout is een volledig HTML-document. Het element met id="CMS" markeert de plek waar de inhoud van de pagina komt:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<header>$SITE</header>
<div id="CMS"></div>
<footer>@{year}</footer>
</body>
</html>Layouts/save neemt name, icon, color, html en een lijst scripts die aan elke pagina van de layout worden toegevoegd. In de HTML wordt $NAME vervangen door de variabele met die naam (zie hieronder) en @{year} door het huidige jaar.
Pagina’s
Een pagina heeft een name, een layoutid (verplicht), een adres url en optioneel title, description, keywords, language, parentid, icon, color en de vlaggen disabled, auth, pinned en nocache. Haar HTML (opgeslagen met pages_save_html) komt in het element id="CMS".
- Als je
urlleeg laat, maakt het CMS er een van de naam:Hello Worldwordt/hello-world/, en onder een bovenliggende pagina begint het adres met het adres van de ouder. - De openbare site serveert een pagina wanneer haar
urlgelijk is aan het gevraagde adres, ze nietdisabledis en haarlanguage, indien ingesteld, gelijk is aan de taal van het verzoek. - Het antwoord krijgt
<title>(detitle, of dename, gevolgd door de naam van de site voor elke pagina behalve/), de beschrijving en de trefwoorden, een script dat de bezoeken telt (/visitors.js) en de stijl van de widgets die de pagina gebruikt. auth-pagina’s worden alleen aan een aangemelde bezoeker geserveerd. Het CMS vraagt je code wie de bezoeker is: definieerFUNC.auth = function($) { ... }(bijvoorbeeld in een bestand vandefinitions/) en roep$.success(user)aan. Zonder die functie is iedereen anoniem en antwoordt eenauth-pagina 404.- Een uitgeschakelde pagina, een onbekend adres en een pagina van een andere taal antwoorden 404. De sitemap
/sitemap.xmltoont de pagina’s die niet zijn uitgeschakeld.
Variabelen
De plugin Variables bewaart een lijst met paren NAME: value (Variables|save met vars). Elke $NAME in een layout of pagina wordt zijn waarde wanneer de pagina wordt geserveerd, handig voor een telefoonnummer, een bedrijfsnaam of een link die op veel plaatsen voorkomt. Een onbekende $NAME blijft staan zoals geschreven.
Navigatie
Een navigatie is een menu dat in het beheer wordt beschreven (een naam en een boom van links met name, url, title, icon, color, target, hidden, highlight en children) en door je layout wordt getekend met een sjabloon geschreven in Tangular. Zet een script in de layout:
<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>Wanneer de layout wordt opgeslagen, wordt een navigatie genaamd main aangemaakt als die niet bestaat; bewerk daarna haar links in de plugin Navigatie. In het sjabloon is value.children de lijst met zichtbare links en value.url het adres dat wordt geserveerd. Geef het script een name; met alleen een id accepteert de compiler het, maar het opslaan van de layout geeft geen antwoord.
Er is ook <script type="text/breadcrumb"> voor het pad van bovenliggende pagina’s.
Doorverwijzingen
Een doorverwijzing heeft een url, een target en permanent. De openbare site controleert de doorverwijzingen vóór de pagina’s: /old/ antwoordde met de pagina van /about/ toen het doel /about/ was.
Cache
Gecompileerde pagina’s worden in de cache bewaard; het opslaan van een pagina, layout, widget of variabele wist wat ervan afhangt, en een service die elke twee minuten draait, wist ook de gecompileerde weergaven.