ForgeCMS
sk

CMS

API administrácie CMS Total.js: správa webu z kódu, zálohovanie a obnova

CMS · cms@8071e48 cmsapiadminbackuprestorepermissions

Všetko, čo robí rozhranie administrácie, ide cez jediný endpoint: POST /admin/ s telom { "schema": "<name>", "data": { ... } } (API cesty Total.js, pozri API cesty). Adresa pochádza z riadku $api : /admin/ v súbore config. Autentifikujte sa cookie relácie (POST /admin/ so schema: "login" a login a password), hlavičkou x-token alebo cez OpenPlatform (inštalácia a prvé spustenie).

Akcie

PluginVolania (schema)Oprávnenie
Accountlogin, logout, admin_read, admin_save (meno, login, heslo), accountrelácia
Pagespages_list, pages_read, pages_save, pages_clone, pages_remove, pages_links, pages_html (číta HTML), pages_save_html (id, html, až 5 MB), pages_copy (from, to)pages
Layoutslayouts_list, layouts_read, layouts_save, layouts_clone, layouts_remove, layouts_html, layouts_save_html, layouts_importlayouts
Widgetswidgets_list, widgets_read, widgets_save, widgets_remove, widgets_detailwidgets
Navigationnav_list, nav_read, nav_save, nav_remove, nav_editornavigation
Redirectsredirects_list, redirects_read, redirects_save (url, target, permanent), redirects_removeredirects
Variablesvariables_read, variables_save (vars)variables
Postsposts, posts_read, posts_create, posts_update, posts_remove, posts_clear, posts_categoriesposts
Filesfiles_list, files_rename, files_clear, files_remove, a nahrávania nižšiefiles
Settingssettings_read, settings_save, settings_test (vyskúša nastavenia SMTP), chatgptsettings
Dashboarddashboard_online, dashboard_referers, dashboard_browsers, dashboard_pages, dashboard_statsžiadne

Oprávnenie admin (a každý používateľ s príznakom sa, vrátane Bota tokenu) má prístup ku všetkým. Volanie bez oprávnenia dostane chybu a login je jediné volanie, ktoré nepotrebuje reláciu.

Vytvorte stránku a jej obsah:

{ "schema": "pages_save", "data": { "name": "About", "layoutid": "<layout id>", "url": "/about/", "title": "About us" } }
{ "schema": "pages_save_html", "data": { "id": "<page id>", "html": "<h1>About us</h1>" } }

pages_save odpovie { "success": true }; id prečítajte cez pages_list. Pri layoute layouts_save odpovie id layoutu v value. Keď pri aktualizácii pole chýba, pole sa vymaže (title, ktorý neodošlete, sa uloží prázdny), preto posielajte celý záznam.

Nahrávanie súborov

POST /admin/upload/ prijíma multipart nahrávanie (do 10 MB) a POST /admin/upload/base64/ telo JSON s data URI (png, jpeg alebo gif). Obe odpovedajú zoznamom { id, name, type, ext, size, url }, kde url je /download/<id>.<ext>.

Záloha, obnova a vymazanie

Tri cesty z controllers/api.js pracujú s celým webom a vyžadujú oprávnenie admin:

CestaČo robí
GET /admin/backup/stiahne celé úložisko súborov (metadáta, HTML stránok a layoutov, súbory a príspevky) ako jeden textový súbor pomenovaný podľa webu a dátumu
POST /admin/restore/nahrá takýto súbor (do 100 MB) a načíta ho.
GET /admin/clear/zmaže obsah webu. Zahodí úložisko súborov a načíta ho znova, takže stránky, layouty, widgety a zvyšok sa odstráni

Pred vyskúšaním ktorejkoľvek z nich urobte zálohu, nikdy neotvárajte /admin/clear/ v prehliadači zo zvedavosti a token držte v tajnosti: s ním jediné GET vyprázdni web.