Σελίδες, διατάξεις, πλοήγηση, μεταβλητές και ανακατευθύνσεις στο 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) και το στυλ των widgets που χρησιμοποιεί η σελίδα. - Οι σελίδες
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/.
Προσωρινή μνήμη
Οι μεταγλωττισμένες σελίδες αποθηκεύονται στην προσωρινή μνήμη· η αποθήκευση μιας σελίδας, διάταξης, widget ή μεταβλητής καθαρίζει ό,τι εξαρτάται από αυτά, και μια υπηρεσία που τρέχει κάθε δύο λεπτά καθαρίζει επίσης τις μεταγλωττισμένες προβολές.