ForgeCMS
ro

CMS

API-ul de administrare al CMS-ului Total.js: gestionează un site din cod, backup și restaurare

CMS · cms@8071e48 cmsapiadminbackuprestorepermissions

Tot ce face interfața de administrare trece printr-un singur endpoint: POST /admin/ cu corpul { "schema": "<name>", "data": { ... } } (rutele API ale Total.js, vezi rutele API). Adresa vine din linia $api : /admin/ a fișierului config. Autentifică-te cu cookie-ul de sesiune (POST /admin/ cu schema: "login" și login și password), cu antetul x-token sau prin OpenPlatform (instalare și prima pornire).

Acțiunile

PluginApeluri (schema)Permisiune
Accountlogin, logout, admin_read, admin_save (nume, login, parolă), accountsesiunea
Pagespages_list, pages_read, pages_save, pages_clone, pages_remove, pages_links, pages_html (citește HTML-ul), pages_save_html (id, html, până la 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, și încărcările de mai josfiles
Settingssettings_read, settings_save, settings_test (încearcă setările SMTP), chatgptsettings
Dashboarddashboard_online, dashboard_referers, dashboard_browsers, dashboard_pages, dashboard_statsniciuna

Permisiunea admin (și orice utilizator cu marcajul sa, inclusiv Bot-ul tokenului) le poate folosi pe toate. Un apel fără permisiune primește o eroare, iar login este singurul apel care nu are nevoie de sesiune.

Creează o pagină și conținutul ei:

{ "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 răspunde { "success": true }; citește id-ul cu pages_list. Pentru un layout, layouts_save răspunde cu id-ul layoutului în value. Când într-o actualizare lipsește un câmp, câmpul este golit (un title pe care nu îl trimiți se salvează gol), așa că trimite înregistrarea întreagă.

Încărcarea fișierelor

POST /admin/upload/ primește o încărcare multipart (până la 10 MB), iar POST /admin/upload/base64/ un corp JSON cu un data URI (png, jpeg sau gif). Ambele răspund cu o listă de { id, name, type, ext, size, url }, unde url este /download/<id>.<ext>.

Backup, restaurare și golire

Trei rute din controllers/api.js lucrează pe tot site-ul și cer permisiunea admin:

RutăCe face
GET /admin/backup/descarcă tot spațiul de stocare de fișiere (metadate, HTML-ul paginilor și layouturilor, fișiere și articole) ca un singur fișier text numit după site și dată
POST /admin/restore/încarcă un astfel de fișier (până la 100 MB) și îl încarcă în site.
GET /admin/clear/șterge conținutul site-ului. Renunță la spațiul de stocare de fișiere și îl încarcă din nou, așa că paginile, layouturile, widgeturile și restul sunt eliminat

Fă un backup înainte să încerci oricare dintre ele, nu deschide niciodată /admin/clear/ într-un browser din curiozitate și ține tokenul privat: cu el, un singur GET golește site-ul.