ForgeCMS
pl

CMS

Ustawienia, wpisy, pliki i odwiedzający w CMS Total.js oraz gdzie wszystko jest zapisane

CMS · cms@8071e48 cmssettingspostsfilesvisitorsstorage

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:

KluczZnaczenie
namenazwa strony, używana w <title> każdej strony poza / oraz w nazwie pliku kopii zapasowej
urlpubliczny adres strony; CMS aktualizuje go także na podstawie hosta żądań administracji
smtpustawienia SMTP jako tekst JSON (server, from, user, password, port); settings_test je sprawdza
iconikona strony
$tms, secret_tmspublikuje zdarzenia przez TMS oraz sekret tego połączenia
op_reqtoken, op_restokentokeny aplikacji OpenPlatform; gdy ustawione są oba, logowanie do administracji zastępuje logowanie OpenPlatform
totalapiklucz 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.