Impostazioni, post, file e visitatori del CMS di Total.js e dove si salva tutto
Impostazioni
Il plugin Settings (settings_read, settings_save; permesso settings) modifica la configurazione che il CMS conserva nei metadati del sito e carica in CONF a ogni avvio:
| Chiave | Significato |
|---|---|
name | il nome del sito, usato nel <title> di ogni pagina tranne / e nel nome del file del backup |
url | l’indirizzo pubblico del sito; il CMS lo aggiorna anche dall’host delle richieste dell’admin |
smtp | le impostazioni SMTP come testo JSON (server, from, user, password, port); settings_test le prova |
icon | un’icona per il sito |
$tms, secret_tms | pubblica gli eventi tramite TMS, e il segreto di quella connessione |
op_reqtoken, op_restoken | i token di un’applicazione OpenPlatform; quando sono impostati entrambi, l’accesso all’admin è sostituito da quello di OpenPlatform |
totalapi | una chiave per i servizi dell’API di Total.js |
I plugin possono aggiungere altre chiavi, che compaiono nello stesso modulo. I valori che vivono nel file config ($api, cdn, salt e, se lo aggiungi, token) non si modificano qui.
Post
Il plugin Posts è un piccolo gestore di articoli, conservati in un proprio file NoSQL nell’archivio. Un post ha name, category, picture, summary, body, reference, icon, color, hidden e date; l’admin li elenca dal più recente (100 per pagina) e posts_categories restituisce le categorie in uso. I post sono dati per il tuo codice: il renderer pubblico del CMS (controllers/default.js) non li stampa, quindi un tuo widget o una tua route deve leggerli e disegnarli.
File
Il plugin Files salva i caricamenti nell’archivio di file e li segna come pubblici. GET /download/<id>.<ext> serve un file pubblico (solo quelli pubblici; gli altri rispondono 404). Per le immagini, ?s=<percent> restituisce un JPEG più piccolo (il valore deve essere tra 10 e 80, con qualità 80), e ?download=1 forza il download. Le route di caricamento e i loro limiti sono in l’API dell’admin.
Visitatori e dashboard
Il modulo modules/visitors.js conta le visite delle pagine pubbliche tramite lo script /visitors.js incluso da ogni pagina: visitatori unici, visualizzazioni, browser, referrer, traffico da ricerca, social e diretto, mobile e desktop, ore del giorno e persone online (un visitatore è online per 20 minuti senza attività). Il plugin Dashboard disegna questi numeri da dashboard_stats, dashboard_online, dashboard_browsers, dashboard_referers e dashboard_pages.
OpenPlatform
Quando op_reqtoken e op_restoken sono impostati, il CMS fa accedere le persone tramite OpenPlatform (modulo modules/openplatform.js) e ogni plugin aggiunge il suo permesso all’elenco che OpenPlatform mostra quando assegni i gruppi: pages, layouts, widgets, navigation, posts, files, redirects, variables, settings e admin. Ricorda la regola di OpenPlatform: un’applicazione è visibile solo ai gruppi che le assegni.
Il modello dei dati
MAIN.db contiene i metadati del sito (pages, layouts, widgets, redirects, vars, nav, config e storage) e viene salvato come un unico documento JSON chiamato meta nell’archivio di file. L’HTML di ogni pagina e layout è un file di quell’archivio il cui nome è l’id della pagina o del layout. FUNC.load() legge i metadati all’avvio, compila i widget (eseguendo la loro funzione install) e ricostruisce le cache; FUNC.save() li riscrive. Per questo un backup dell’archivio è un backup del sito.