Страници, шаблони, навигация, променливи и пренасочвания в CMS на Total.js
CMS пази HTML на всеки шаблон и страница като файл, а данните им (адрес, заглавие, шаблон...) в метаданните на сайта. Заявка към публичния сайт намира страница по адреса ѝ и я визуализира в нейния шаблон.
Шаблони
Шаблонът е пълен HTML документ. Елементът с id="CMS" отбелязва мястото, където отива съдържанието на страницата:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<header>$SITE</header>
<div id="CMS"></div>
<footer>@{year}</footer>
</body>
</html>Layouts/save приема name, icon, color, html и списък scripts, които се добавят към всяка страница на шаблона. В HTML $NAME се заменя с променливата с това име (вижте по-долу), а @{year} с текущата година.
Страници
Страницата има name, layoutid (задължително), адрес url и по избор title, description, keywords, language, parentid, icon, color и флаговете disabled, auth, pinned и nocache. Нейният HTML (записан с pages_save_html) е това, което отива в елемента id="CMS".
- Ако оставите
urlпразен, CMS прави такъв от името:Hello Worldстава/hello-world/, а под родителска страница адресът започва с адреса на родителя. - Публичният сайт сервира страница, когато нейният
urlе равен на поисканата адрес, не еdisabledи нейниятlanguage, ако е зададен, е равен на езика на заявката. - Отговорът получава
<title>(titleилиname, последвани от името на сайта за всяка страница освен/), описанието и ключовите думи, скрипт, който брои посещенията (/visitors.js), и стила на уиджетите, които страницата ползва. - Страниците
authсе сервират само на влязъл посетител. CMS пита вашия код кой е посетителят: дефинирайтеFUNC.auth = function($) { ... }(например във файл отdefinitions/) и извикайте$.success(user). Без тази функция всички са анонимни и страницаauthотговаря 404. - Изключена страница, непознат адрес и страница на друг език отговарят 404. Sitemap
/sitemap.xmlизброява страниците, които не са изключени.
Променливи
Добавката Variables пази списък от двойки NAME: value (Variables|save с vars). Всяко $NAME в шаблон или страница става своята стойност, когато страницата се сервира, което е полезно за телефон, име на фирма или връзка, която се среща на много места. Непознато $NAME остава така, както е написано.
Навигация
Навигацията е меню, описано в администрацията (име и дърво от връзки с name, url, title, icon, color, target, hidden, highlight и children) и изчертавано от вашия шаблон с шаблон, написан с Tangular. Сложете скрипт в шаблона:
<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>Когато шаблонът се запише, се създава навигация на име main, ако не съществува; след това редактирайте връзките ѝ в добавката Навигация. В шаблона value.children е списъкът с видимите връзки, а value.url е адресът, който се сервира. Дайте на скрипта name; само с id компилаторът го приема, но записването на шаблона не отговаря.
Има и <script type="text/breadcrumb"> за пътя на родителските страници.
Пренасочвания
Пренасочването има url, target и permanent. Публичният сайт проверява пренасочванията преди страниците: /old/ отговори със страницата на /about/, когато целта му беше /about/.
Кеш
Компилираните страници се държат в кеш; записването на страница, шаблон, уиджет или променлива изчиства зависещото от тях, а услуга, която работи на всеки две минути, изчиства и компилираните изгледи.