ForgeCMS
bg

CMS

Страници, шаблони, навигация, променливи и пренасочвания в CMS на Total.js

CMS · cms@8071e48 cmspageslayoutsnavigationredirectsvariablessitemap

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

Кеш

Компилираните страници се държат в кеш; записването на страница, шаблон, уиджет или променлива изчиства зависещото от тях, а услуга, която работи на всеки две минути, изчиства и компилираните изгледи.