Réglages, articles, fichiers et visiteurs du CMS de Total.js et où tout est stocké
Réglages
Le plugin Settings (settings_read, settings_save ; permission settings) modifie la configuration que le CMS conserve dans les métadonnées du site et charge dans CONF à chaque démarrage :
| Clé | Signification |
|---|---|
name | le nom du site, utilisé dans le <title> de toutes les pages sauf / et dans le nom du fichier de sauvegarde |
url | l’adresse publique du site ; le CMS la met aussi à jour à partir de l’hôte des requêtes de l’admin |
smtp | les réglages SMTP sous forme de texte JSON (server, from, user, password, port) ; settings_test les essaie |
icon | une icône pour le site |
$tms, secret_tms | publie les événements par TMS, et le secret de cette connexion |
op_reqtoken, op_restoken | les jetons d’une application OpenPlatform ; quand les deux sont définis, la connexion à l’admin est remplacée par celle d’OpenPlatform |
totalapi | une clé pour les services de l’API Total.js |
Les plugins peuvent ajouter d’autres clés, qui apparaissent dans le même formulaire. Les valeurs du fichier config ($api, cdn, salt et, si vous l’ajoutez, token) ne se modifient pas ici.
Articles
Le plugin Posts est un petit gestionnaire d’articles, conservés dans leur propre fichier NoSQL dans le stockage. Un article a name, category, picture, summary, body, reference, icon, color, hidden et date ; l’admin les liste du plus récent au plus ancien (100 par page) et posts_categories renvoie les catégories utilisées. Les articles sont des données pour votre propre code : le moteur de rendu public du CMS (controllers/default.js) ne les affiche pas, c’est donc à un widget ou à une route de votre cru de les lire et de les dessiner.
Fichiers
Le plugin Files stocke les envois dans le stockage de fichiers et les marque comme publics. GET /download/<id>.<ext> sert un fichier public (seulement les publics ; les autres répondent 404). Pour les images, ?s=<percent> renvoie un JPEG plus petit (la valeur doit être comprise entre 10 et 80, avec une qualité de 80), et ?download=1 force le téléchargement. Les routes d’envoi et leurs limites sont décrites dans l’API de l’admin.
Visiteurs et tableau de bord
Le module modules/visitors.js compte les visites des pages publiques grâce au script /visitors.js que chaque page inclut : visiteurs uniques, pages vues, navigateurs, référents, trafic de recherche, social et direct, mobile et ordinateur, heures du jour et personnes en ligne (un visiteur reste en ligne 20 minutes sans activité). Le plugin Dashboard dessine ces chiffres à partir de dashboard_stats, dashboard_online, dashboard_browsers, dashboard_referers et dashboard_pages.
OpenPlatform
Quand op_reqtoken et op_restoken sont définis, le CMS connecte les gens via OpenPlatform (module modules/openplatform.js) et chaque plugin ajoute sa permission à la liste qu’OpenPlatform montre quand vous attribuez des groupes : pages, layouts, widgets, navigation, posts, files, redirects, variables, settings et admin. Rappelez-vous la règle d’OpenPlatform : une application n’est visible que des groupes que vous lui attribuez.
Le modèle de données
MAIN.db contient les métadonnées du site (pages, layouts, widgets, redirects, vars, nav, config et storage) et est enregistré sous la forme d’un seul document JSON appelé meta dans le stockage de fichiers. Le HTML de chaque page et de chaque layout est un fichier de ce stockage dont le nom est l’id de la page ou du layout. FUNC.load() lit les métadonnées au démarrage, compile les widgets (en exécutant leur fonction install) et reconstruit les caches ; FUNC.save() les réécrit. C’est pourquoi une sauvegarde du stockage est une sauvegarde du site.