ForgeCMS
nl

CMS

Pagina’s, layouts, navigatie, variabelen en doorverwijzingen in het Total.js CMS

CMS · cms@8071e48 cmspageslayoutsnavigationredirectsvariablessitemap

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 url leeg laat, maakt het CMS er een van de naam: Hello World wordt /hello-world/, en onder een bovenliggende pagina begint het adres met het adres van de ouder.
  • De openbare site serveert een pagina wanneer haar url gelijk is aan het gevraagde adres, ze niet disabled is en haar language, indien ingesteld, gelijk is aan de taal van het verzoek.
  • Het antwoord krijgt <title> (de title, of de name, 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: definieer FUNC.auth = function($) { ... } (bijvoorbeeld in een bestand van definitions/) en roep $.success(user) aan. Zonder die functie is iedereen anoniem en antwoordt een auth-pagina 404.
  • Een uitgeschakelde pagina, een onbekend adres en een pagina van een andere taal antwoorden 404. De sitemap /sitemap.xml toont 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.

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.