ForgeCMS
it

CMS

Pagine, layout, navigazione, variabili e reindirizzamenti nel CMS di Total.js

CMS · cms@8071e48 cmspageslayoutsnavigationredirectsvariablessitemap

Il CMS conserva l’HTML di ogni layout e pagina come file e i loro dati (indirizzo, titolo, layout...) nei metadati del sito. Una richiesta al sito pubblico trova una pagina dal suo indirizzo e la renderizza dentro il suo layout.

Layout

Un layout è un documento HTML completo. L’elemento con id="CMS" segna il punto in cui va il contenuto della pagina:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
</head>
<body>
	<header>$SITE</header>
	<div id="CMS"></div>
	<footer>@{year}</footer>
</body>
</html>

Layouts/save riceve name, icon, color, html e un elenco di scripts che vengono aggiunti a ogni pagina del layout. Nell’HTML, $NAME è sostituito dalla variabile con quel nome (vedi sotto) e @{year} dall’anno corrente.

Pagine

Una pagina ha un name, un layoutid (obbligatorio), un indirizzo url e, facoltativi, title, description, keywords, language, parentid, icon, color e i flag disabled, auth, pinned e nocache. Il suo HTML (salvato con pages_save_html) è ciò che va dentro l’elemento id="CMS".

  • Se lasci url vuoto, il CMS ne crea uno dal nome: Hello World diventa /hello-world/, e sotto una pagina padre l’indirizzo inizia con quello del padre.
  • Il sito pubblico serve una pagina quando il suo url è uguale all’indirizzo richiesto, non è disabled e il suo language, se impostato, è uguale alla lingua della richiesta.
  • La risposta riceve <title> (il title, o il name, seguito dal nome del sito per ogni pagina tranne /), la descrizione e le parole chiave, uno script che conta le visite (/visitors.js) e lo stile dei widget usati dalla pagina.
  • Le pagine auth sono servite solo a un visitatore con accesso. Il CMS chiede al tuo codice chi è il visitatore: definisci FUNC.auth = function($) { ... } (per esempio in un file di definitions/) e chiama $.success(user). Senza quella funzione tutti sono anonimi e una pagina auth risponde 404.
  • Una pagina disattivata, un indirizzo sconosciuto e una pagina di un’altra lingua rispondono 404. La sitemap /sitemap.xml elenca le pagine che non sono disattivate.

Variabili

Il plugin Variables conserva un elenco di coppie NAME: value (Variables|save con vars). Ogni $NAME in un layout o in una pagina diventa il suo valore quando la pagina viene servita, utile per un telefono, il nome di un’azienda o un link che compare in molti punti. Un $NAME sconosciuto resta com’è scritto.

Una navigazione è un menu descritto nell’admin (un nome e un albero di link con name, url, title, icon, color, target, hidden, highlight e children) e disegnato dal tuo layout con un modello scritto in Tangular. Metti uno script nel 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>

Quando il layout viene salvato, viene creata una navigazione chiamata main se non esiste; poi modifica i suoi link nel plugin Navigazione. Nel modello, value.children è l’elenco dei link visibili e value.url l’indirizzo servito. Dai allo script un name; con il solo id il compilatore lo accetta ma il salvataggio del layout non risponde.

Esiste anche <script type="text/breadcrumb"> per il percorso delle pagine padre.

Reindirizzamenti

Un reindirizzamento ha un url, un target e permanent. Il sito pubblico controlla i reindirizzamenti prima delle pagine: /old/ ha risposto con la pagina di /about/ quando la sua destinazione era /about/.

Cache

Le pagine compilate sono messe in cache; salvare una pagina, un layout, un widget o una variabile svuota ciò che ne dipende, e un servizio che gira ogni due minuti svuota anche le viste compilate.