ForgeCMS
nl

CMS

Instellingen, berichten, bestanden en bezoekers van het Total.js CMS en waar alles wordt opgeslagen

CMS · cms@8071e48 cmssettingspostsfilesvisitorsstorage

Instellingen

De plugin Settings (settings_read, settings_save; recht settings) bewerkt de configuratie die het CMS in de metadata van de site bewaart en bij elke start in CONF laadt:

SleutelBetekenis
namede naam van de site, gebruikt in de <title> van elke pagina behalve / en in de bestandsnaam van de back-up
urlhet openbare adres van de site; het CMS werkt het ook bij vanuit de host van de beheerverzoeken
smtpde SMTP-instellingen als JSON-tekst (server, from, user, password, port); settings_test probeert ze
iconeen pictogram voor de site
$tms, secret_tmspubliceert de gebeurtenissen via TMS, en het geheim van die verbinding
op_reqtoken, op_restokende tokens van een OpenPlatform-applicatie; als beide zijn ingesteld, wordt de beheerlogin vervangen door die van OpenPlatform
totalapieen sleutel voor de Total.js API-diensten

Plugins kunnen meer sleutels toevoegen, die in hetzelfde formulier verschijnen. Waarden die in het bestand config staan ($api, cdn, salt en, als je hem toevoegt, token) worden hier niet bewerkt.

Berichten

De plugin Posts is een kleine beheerder van artikelen, bewaard in een eigen NoSQL-bestand in de opslag. Een bericht heeft name, category, picture, summary, body, reference, icon, color, hidden en date; het beheer toont ze nieuwste eerst (100 per pagina) en posts_categories geeft de gebruikte categorieën terug. De berichten zijn gegevens voor je eigen code: de openbare renderer van het CMS (controllers/default.js) drukt ze niet af, dus een widget of route van jou moet ze lezen en tekenen.

Bestanden

De plugin Files bewaart uploads in de bestandsopslag en markeert ze als openbaar. GET /download/<id>.<ext> serveert een openbaar bestand (alleen de openbare; de rest antwoordt 404). Bij afbeeldingen geeft ?s=<percent> een kleinere JPEG (de waarde moet tussen 10 en 80 liggen, met kwaliteit 80), en ?download=1 dwingt een download af. De uploadroutes en hun limieten staan in de beheer-API.

Bezoekers en het dashboard

De module modules/visitors.js telt de bezoeken aan de openbare pagina’s via het script /visitors.js dat elke pagina insluit: unieke bezoekers, paginaweergaven, browsers, verwijzers, zoek-, sociaal en direct verkeer, mobiel en desktop, uren van de dag en de mensen online (een bezoeker is 20 minuten online zonder activiteit). De plugin Dashboard tekent die cijfers uit dashboard_stats, dashboard_online, dashboard_browsers, dashboard_referers en dashboard_pages.

OpenPlatform

Als op_reqtoken en op_restoken zijn ingesteld, laat het CMS mensen inloggen via OpenPlatform (module modules/openplatform.js) en voegt elke plugin zijn recht toe aan de lijst die OpenPlatform toont bij het toewijzen van groepen: pages, layouts, widgets, navigation, posts, files, redirects, variables, settings en admin. Onthoud de regel van OpenPlatform: een applicatie is alleen zichtbaar voor de groepen die je eraan toewijst.

Het datamodel

MAIN.db bevat de metadata van de site (pages, layouts, widgets, redirects, vars, nav, config en storage) en wordt als één JSON-document met de naam meta in de bestandsopslag bewaard. De HTML van elke pagina en layout is een bestand van die opslag waarvan de naam de id van de pagina of layout is. FUNC.load() leest de metadata bij de start, compileert de widgets (en voert hun functie install uit) en bouwt de caches opnieuw op; FUNC.save() schrijft ze terug. Daarom is een back-up van de opslag een back-up van de site.