Ustawienia, wpisy, pliki i odwiedzający w CMS Total.js oraz gdzie wszystko jest zapisane
Ustawienia
Wtyczka Settings (settings_read, settings_save; uprawnienie settings) edytuje konfigurację, którą CMS trzyma w metadanych strony i przy każdym starcie ładuje do CONF:
| Klucz | Znaczenie |
|---|---|
name | nazwa strony, używana w <title> każdej strony poza / oraz w nazwie pliku kopii zapasowej |
url | publiczny adres strony; CMS aktualizuje go także na podstawie hosta żądań administracji |
smtp | ustawienia SMTP jako tekst JSON (server, from, user, password, port); settings_test je sprawdza |
icon | ikona strony |
$tms, secret_tms | publikuje zdarzenia przez TMS oraz sekret tego połączenia |
op_reqtoken, op_restoken | tokeny aplikacji OpenPlatform; gdy ustawione są oba, logowanie do administracji zastępuje logowanie OpenPlatform |
totalapi | klucz do usług API Total.js |
Wtyczki mogą dodawać kolejne klucze, które pojawiają się w tym samym formularzu. Wartości z pliku config ($api, cdn, salt oraz, jeśli go dodasz, token) nie są tu edytowane.
Wpisy
Wtyczka Posts to mały menedżer artykułów, zapisanych we własnym pliku NoSQL w magazynie. Wpis ma name, category, picture, summary, body, reference, icon, color, hidden i date; administracja wyświetla je od najnowszych (po 100 na stronę), a posts_categories zwraca używane kategorie. Wpisy to dane dla Twojego kodu: publiczny renderer CMS (controllers/default.js) ich nie drukuje, więc musi je odczytać i narysować Twój widżet lub trasa.
Pliki
Wtyczka Files zapisuje wgrane pliki w magazynie plików i oznacza je jako publiczne. GET /download/<id>.<ext> serwuje plik publiczny (tylko publiczne; reszta odpowiada 404). Dla obrazów ?s=<percent> zwraca mniejszy JPEG (wartość musi mieścić się między 10 a 80, jakość 80), a ?download=1 wymusza pobranie. Trasy wgrywania i ich limity opisano w API administracji.
Odwiedzający i panel
Moduł modules/visitors.js liczy wizyty na stronach publicznych przez skrypt /visitors.js, który zawiera każda strona: unikalnych odwiedzających, odsłony, przeglądarki, źródła odesłań, ruch z wyszukiwarek, social i bezpośredni, mobile i desktop, godziny doby oraz osoby online (odwiedzający jest online przez 20 minut bez aktywności). Wtyczka Dashboard rysuje te liczby z dashboard_stats, dashboard_online, dashboard_browsers, dashboard_referers i dashboard_pages.
OpenPlatform
Gdy ustawione są op_reqtoken i op_restoken, CMS loguje ludzi przez OpenPlatform (moduł modules/openplatform.js), a każda wtyczka dokłada swoje uprawnienie do listy, którą OpenPlatform pokazuje przy przypisywaniu grup: pages, layouts, widgets, navigation, posts, files, redirects, variables, settings i admin. Pamiętaj o regule OpenPlatform: aplikacja jest widoczna tylko dla grup, które jej przypiszesz.
Model danych
MAIN.db przechowuje metadane strony (pages, layouts, widgets, redirects, vars, nav, config i storage) i jest zapisywany jako jeden dokument JSON o nazwie meta w magazynie plików. HTML każdej strony i layoutu to plik tego magazynu, którego nazwą jest id strony lub layoutu. FUNC.load() odczytuje metadane przy starcie, kompiluje widżety (uruchamiając ich funkcję install) i odbudowuje cache; FUNC.save() zapisuje je z powrotem. Dlatego kopia zapasowa magazynu jest kopią zapasową strony.