ForgeCMS
ro

CMS

Pagini, layout-uri, navigație, variabile și redirecționări în CMS-ul Total.js

CMS · cms@8071e48 cmspageslayoutsnavigationredirectsvariablessitemap

CMS-ul păstrează HTML-ul fiecărui layout și al fiecărei pagini ca fișier, iar datele lor (adresă, titlu, layout...) în metadatele site-ului. O cerere către site-ul public găsește o pagină după adresă și o randează în layout-ul ei.

Layout-uri

Un layout este un document HTML complet. Elementul cu id="CMS" marchează locul în care intră conținutul paginii:

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

Layouts/save primește name, icon, color, html și o listă de scripts care se adaugă fiecărei pagini a layout-ului. În HTML, $NAME este înlocuit cu variabila cu acel nume (vezi mai jos), iar @{year} cu anul curent.

Pagini

O pagină are un name, un layoutid (obligatoriu), o adresă url și, opțional, title, description, keywords, language, parentid, icon, color și indicatorii disabled, auth, pinned și nocache. HTML-ul ei (salvat cu pages_save_html) este ce intră în elementul id="CMS".

  • Dacă lași url gol, CMS-ul face unul din nume: Hello World devine /hello-world/, iar sub o pagină-părinte adresa începe cu adresa părintelui.
  • Site-ul public servește o pagină când url al ei este egal cu adresa cerută, nu este disabled, iar language al ei, dacă este setat, este egal cu limba cererii.
  • Răspunsul primește <title> (title sau name, urmat de numele site-ului la fiecare pagină în afară de /), descrierea și cuvintele-cheie, un script care numără vizitele (/visitors.js) și stilul widgeturilor folosite de pagină.
  • Paginile auth sunt servite doar unui vizitator autentificat. CMS-ul întreabă codul tău cine este vizitatorul: definește FUNC.auth = function($) { ... } (de exemplu într-un fișier din definitions/) și apelează $.success(user). Fără acea funcție toți sunt anonimi, iar o pagină auth răspunde 404.
  • O pagină dezactivată, o adresă necunoscută și o pagină în altă limbă răspund 404. Sitemap-ul /sitemap.xml listează paginile care nu sunt dezactivate.

Variabile

Pluginul Variables păstrează o listă de perechi NAME: value (Variables|save cu vars). Orice $NAME dintr-un layout sau o pagină devine valoarea lui când pagina este servită, ceea ce e util pentru un telefon, numele unei companii sau un link care apare în multe locuri. Un $NAME necunoscut rămâne așa cum este scris.

O navigație este un meniu descris în administrare (un nume și un arbore de linkuri cu name, url, title, icon, color, target, hidden, highlight și children) și desenat de layout-ul tău cu un șablon scris în Tangular. Pune un script în 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>

Când layout-ul este salvat, se creează o navigație numită main dacă nu există; apoi editează linkurile ei în pluginul Navigație. În șablon, value.children este lista linkurilor vizibile, iar value.url adresa servită. Dă scriptului un name; doar cu un id compilatorul îl acceptă, dar salvarea layout-ului nu răspunde.

Există și <script type="text/breadcrumb"> pentru traseul paginilor-părinte.

Redirecționări

O redirecționare are un url, un target și permanent. Site-ul public verifică redirecționările înaintea paginilor: /old/ a răspuns cu pagina /about/ când ținta lui era /about/.

Cache

Paginile compilate sunt păstrate în cache; salvarea unei pagini, a unui layout, a unui widget sau a unei variabile golește ce depinde de ele, iar un serviciu care rulează la fiecare două minute golește și vizualizările compilate.