ForgeCMS
sv

CMS

Sidor, layouter, navigation, variabler och omdirigeringar i Total.js CMS

CMS · cms@8071e48 cmspageslayoutsnavigationredirectsvariablessitemap

CMS lagrar HTML för varje layout och sida som en fil och deras data (adress, titel, layout...) i webbplatsens metadata. En begäran till den publika webbplatsen hittar en sida via dess adress och renderar den inuti dess layout.

Layouter

En layout är ett fullständigt HTML-dokument. Elementet med id="CMS" markerar platsen där sidans innehåll hamnar:

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

Layouts/save tar name, icon, color, html och en lista scripts som läggs till på varje sida i layouten. I HTML ersätts $NAME av variabeln med det namnet (se nedan) och @{year} av innevarande år.

Sidor

En sida har ett name, ett layoutid (obligatoriskt), en adress url och valfritt title, description, keywords, language, parentid, icon, color samt flaggorna disabled, auth, pinned och nocache. Dess HTML (sparad med pages_save_html) hamnar i elementet id="CMS".

  • Om du lämnar url tom skapar CMS en av namnet: Hello World blir /hello-world/, och under en föräldersida börjar adressen med förälderns adress.
  • Den publika webbplatsen serverar en sida när dess url är lika med den begärda adressen, den inte är disabled och dess language, om satt, är lika med begärans språk.
  • Svaret får <title> (title eller name, följt av webbplatsens namn för varje sida utom /), beskrivningen och nyckelorden, ett skript som räknar besöken (/visitors.js) och stilen för de widgetar som sidan använder.
  • auth-sidor serveras bara till en inloggad besökare. CMS frågar din kod vem besökaren är: definiera FUNC.auth = function($) { ... } (till exempel i en fil i definitions/) och anropa $.success(user). Utan den funktionen är alla anonyma och en auth-sida svarar 404.
  • En inaktiverad sida, en okänd adress och en sida på ett annat språk svarar 404. Sitemapen /sitemap.xml listar sidorna som inte är inaktiverade.

Variabler

Pluginet Variables håller en lista med par NAME: value (Variables|save med vars). Varje $NAME i en layout eller sida blir sitt värde när sidan serveras, vilket är användbart för ett telefonnummer, ett företagsnamn eller en länk som förekommer på många ställen. Ett okänt $NAME förblir som det står skrivet.

En navigation är en meny som beskrivs i administrationen (ett namn och ett träd av länkar med name, url, title, icon, color, target, hidden, highlight och children) och ritas av din layout med en mall skriven i Tangular. Lägg ett skript i layouten:

<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>

När layouten sparas skapas en navigation som heter main om den inte finns; redigera sedan dess länkar i pluginet Navigation. I mallen är value.children listan över synliga länkar och value.url adressen som serveras. Ge skriptet ett name; med bara ett id accepterar kompilatorn det, men sparandet av layouten ger inget svar.

Det finns också <script type="text/breadcrumb"> för spåret av föräldersidor.

Omdirigeringar

En omdirigering har en url, ett target och permanent. Den publika webbplatsen kontrollerar omdirigeringarna före sidorna: /old/ svarade med sidan /about/ när dess mål var /about/.

Cache

Kompilerade sidor cachas; att spara en sida, layout, widget eller variabel rensar det som beror på dem, och en tjänst som körs var tvåa minut rensar också de kompilerade vyerna.