ForgeCMS
hu

CMS

A Total.js CMS admin API-ja: webhely kezelése kódból, mentés és visszaállítás

CMS · cms@8071e48 cmsapiadminbackuprestorepermissions

Az admin felület minden műveletét egyetlen végpont intézi: POST /admin/ a { "schema": "<name>", "data": { ... } } törzzsel (a Total.js API útvonalai, lásd API útvonalak). A cím a config fájl $api : /admin/ sorából származik. Hitelesíts a munkamenet-cookie-val (POST /admin/ a schema: "login" értékkel, valamint a login és a password mezővel), az x-token fejléccel vagy az OpenPlatformon keresztül (telepítés és első indítás).

A műveletek

BővítményHívások (schema)Jogosultság
Accountlogin, logout, admin_read, admin_save (név, login, jelszó), accounta munkamenet
Pagespages_list, pages_read, pages_save, pages_clone, pages_remove, pages_links, pages_html (beolvassa a HTML-t), pages_save_html (id, html, legfeljebb 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, és az alábbi feltöltésekfiles
Settingssettings_read, settings_save, settings_test (kipróbálja az SMTP-beállításokat), chatgptsettings
Dashboarddashboard_online, dashboard_referers, dashboard_browsers, dashboard_pages, dashboard_statsnincs

Az admin jogosultság (és minden sa jelzőjű felhasználó, beleértve a token Bot-ját is) mindegyiket használhatja. A jogosultság nélküli hívás hibát kap, és a login az egyetlen hívás, amelyhez nem kell munkamenet.

Hozz létre egy oldalt és a tartalmát:

{ "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>" } }

A pages_save válasza { "success": true }; az azonosítót a pages_list hívással olvashatod ki. Layout esetén a layouts_save a layout azonosítóját adja vissza a value mezőben. Ha frissítéskor hiányzik egy mező, a mező törlődik (a nem küldött title üresen mentődik), ezért a teljes rekordot küldd el.

Fájlok feltöltése

A POST /admin/upload/ multipart feltöltést fogad (legfeljebb 10 MB), a POST /admin/upload/base64/ pedig JSON törzset data URI-val (png, jpeg vagy gif). Mindkettő { id, name, type, ext, size, url } elemek listájával válaszol, ahol az url értéke /download/<id>.<ext>.

Mentés, visszaállítás és törlés

A controllers/api.js három útvonala a teljes webhelyen dolgozik, és az admin jogosultságot igényli:

ÚtvonalMit csinál
GET /admin/backup/letölti a teljes fájltárolót (metaadatok, oldalak és layoutok HTML-je, fájlok és bejegyzések) egyetlen, a webhely nevéről és a dátumról elnevezett szövegfájlként
POST /admin/restore/feltölt egy ilyen fájlt (legfeljebb 100 MB), és betölti.
GET /admin/clear/törli a webhely tartalmát. Eldobja a fájltárolót és újra betölti, így az oldalak, layoutok, widgetek és a többi törlődi

Készíts mentést, mielőtt bármelyiket kipróbálod, soha ne nyisd meg a /admin/clear/ címet böngészőben puszta kíváncsiságból, és tartsd titokban a tokent: vele egyetlen GET kiüríti a webhelyet.