ForgeCMS
de

CMS

Seiten, Layouts, Navigation, Variablen und Weiterleitungen im Total.js CMS

CMS · cms@8071e48 cmspageslayoutsnavigationredirectsvariablessitemap

Das CMS speichert das HTML jedes Layouts und jeder Seite als Datei und ihre Daten (Adresse, Titel, Layout...) in den Metadaten der Website. Eine Anfrage an die öffentliche Website findet eine Seite anhand ihrer Adresse und rendert sie in ihrem Layout.

Layouts

Ein Layout ist ein vollständiges HTML-Dokument. Das Element mit id="CMS" markiert die Stelle, an der der Inhalt der Seite steht:

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

Layouts/save nimmt name, icon, color, html und eine Liste von scripts entgegen, die jeder Seite des Layouts hinzugefügt werden. Im HTML wird $NAME durch die Variable dieses Namens ersetzt (siehe unten) und @{year} durch das aktuelle Jahr.

Seiten

Eine Seite hat einen name, eine layoutid (Pflicht), eine Adresse url und optional title, description, keywords, language, parentid, icon, color sowie die Flags disabled, auth, pinned und nocache. Ihr HTML (gespeichert mit pages_save_html) steht im Element id="CMS".

  • Lassen Sie url leer, erzeugt das CMS eine aus dem Namen: Hello World wird zu /hello-world/, und unter einer Elternseite beginnt die Adresse mit der Adresse des Elternteils.
  • Die öffentliche Website liefert eine Seite aus, wenn ihre url der angefragten Adresse entspricht, sie nicht disabled ist und ihre language, falls gesetzt, der Sprache der Anfrage entspricht.
  • Die Antwort erhält <title> (den title oder den name, gefolgt vom Namen der Website bei jeder Seite außer /), die Beschreibung und die Schlüsselwörter, ein Skript, das die Besuche zählt (/visitors.js), und den Stil der Widgets, die die Seite verwendet.
  • auth-Seiten werden nur einem angemeldeten Besucher ausgeliefert. Das CMS fragt Ihren Code, wer der Besucher ist: Definieren Sie FUNC.auth = function($) { ... } (zum Beispiel in einer Datei von definitions/) und rufen Sie $.success(user) auf. Ohne diese Funktion sind alle anonym, und eine auth-Seite antwortet 404.
  • Eine deaktivierte Seite, eine unbekannte Adresse und eine Seite einer anderen Sprache antworten 404. Die Sitemap /sitemap.xml listet die Seiten auf, die nicht deaktiviert sind.

Variablen

Das Plugin Variables hält eine Liste von Paaren NAME: value (Variables|save mit vars). Jedes $NAME in einem Layout oder einer Seite wird beim Ausliefern der Seite zu seinem Wert, was für eine Telefonnummer, einen Firmennamen oder einen Link nützlich ist, der an vielen Stellen vorkommt. Ein unbekanntes $NAME bleibt wie geschrieben stehen.

Eine Navigation ist ein im Admin beschriebenes Menü (ein Name und ein Baum von Links mit name, url, title, icon, color, target, hidden, highlight und children), das Ihr Layout mit einer in Tangular geschriebenen Vorlage zeichnet. Setzen Sie ein Skript in das 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>

Beim Speichern des Layouts wird eine Navigation namens main angelegt, falls sie nicht existiert; bearbeiten Sie dann ihre Links im Plugin Navigation. In der Vorlage ist value.children die Liste der sichtbaren Links und value.url die ausgelieferte Adresse. Geben Sie dem Skript einen name; mit nur einer id akzeptiert der Compiler es, aber das Speichern des Layouts antwortet nicht.

Es gibt auch <script type="text/breadcrumb"> für den Pfad der Elternseiten.

Weiterleitungen

Eine Weiterleitung hat eine url, ein target und permanent. Die öffentliche Website prüft die Weiterleitungen vor den Seiten: /old/ antwortete mit der Seite von /about/, als ihr Ziel /about/ war.

Cache

Kompilierte Seiten werden im Cache gehalten; das Speichern einer Seite, eines Layouts, eines Widgets oder einer Variable leert, was davon abhängt, und ein Dienst, der alle zwei Minuten läuft, leert außerdem die kompilierten Ansichten.