ForgeCMS
pl

CMS

API administracji CMS Total.js: zarządzanie stroną z kodu, kopia zapasowa i przywracanie

CMS · cms@8071e48 cmsapiadminbackuprestorepermissions

Wszystko, co robi interfejs administracji, przechodzi przez jeden endpoint: POST /admin/ z treścią { "schema": "<name>", "data": { ... } } (trasy API Total.js, zobacz trasy API). Adres pochodzi z linii $api : /admin/ pliku config. Uwierzytelnij się ciasteczkiem sesji (POST /admin/ z schema: "login" oraz login i password), nagłówkiem x-token albo przez OpenPlatform (instalacja i pierwsze uruchomienie).

Akcje

PluginWywołania (schema)Uprawnienie
Accountlogin, logout, admin_read, admin_save (nazwa, login, hasło), accountsesja
Pagespages_list, pages_read, pages_save, pages_clone, pages_remove, pages_links, pages_html (odczytuje HTML), pages_save_html (id, html, do 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 wgrywanie poniżejfiles
Settingssettings_read, settings_save, settings_test (sprawdza ustawienia SMTP), chatgptsettings
Dashboarddashboard_online, dashboard_referers, dashboard_browsers, dashboard_pages, dashboard_statsbrak

Uprawnienie admin (i każdy użytkownik z flagą sa, w tym Bot tokenu) ma dostęp do wszystkich. Wywołanie bez uprawnienia dostaje błąd, a login jest jedynym wywołaniem, które nie wymaga sesji.

Utwórz stronę i jej treść:

{ "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 odpowiada { "success": true }; id odczytasz przez pages_list. Dla layoutu layouts_save odpowiada id layoutu w value. Gdy w aktualizacji brakuje pola, pole jest czyszczone (title, którego nie wyślesz, zapisze się puste), więc wysyłaj cały rekord.

Wgrywanie plików

POST /admin/upload/ przyjmuje wgranie multipart (do 10 MB), a POST /admin/upload/base64/ treść JSON z data URI (png, jpeg lub gif). Oba odpowiadają listą { id, name, type, ext, size, url }, gdzie url to /download/<id>.<ext>.

Kopia zapasowa, przywracanie i czyszczenie

Trzy trasy z controllers/api.js działają na całej stronie i wymagają uprawnienia admin:

TrasaCo robi
GET /admin/backup/pobiera cały magazyn plików (metadane, HTML stron i layoutów, pliki i wpisy) jako jeden plik tekstowy nazwany od strony i daty
POST /admin/restore/wgrywa taki plik (do 100 MB) i go ładuje.
GET /admin/clear/usuwa zawartość strony. Porzuca magazyn plików i ładuje go ponownie, więc strony, layouty, widżety i reszta są usuwan

Zrób kopię zapasową, zanim wypróbujesz którąkolwiek z nich, nigdy nie otwieraj /admin/clear/ w przeglądarce z ciekawości i trzymaj token w tajemnicy: z nim pojedyncze GET opróżnia stronę.