ForgeCMS
el

CMS

Το API διαχείρισης του CMS του Total.js: διαχειριστείτε έναν ιστότοπο από κώδικα, αντίγραφο ασφαλείας και επαναφορά

CMS · cms@8071e48 cmsapiadminbackuprestorepermissions

Ό,τι κάνει η διεπαφή διαχείρισης περνά από ένα μόνο endpoint: POST /admin/ με σώμα { "schema": "<name>", "data": { ... } } (οι διαδρομές API του Total.js, δείτε διαδρομές API). Η διεύθυνση προέρχεται από τη γραμμή $api : /admin/ του αρχείου config. Ταυτοποιηθείτε με το cookie συνεδρίας (POST /admin/ με schema: "login" και τα login και password), με την κεφαλίδα x-token ή μέσω OpenPlatform (εγκατάσταση και πρώτη εκκίνηση).

Οι ενέργειες

ΠρόσθετοΚλήσεις (schema)Δικαίωμα
Accountlogin, logout, admin_read, admin_save (όνομα, login, κωδικός), accountη συνεδρία
Pagespages_list, pages_read, pages_save, pages_clone, pages_remove, pages_links, pages_html (διαβάζει το HTML), pages_save_html (id, html, έως 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, και οι μεταφορτώσεις παρακάτωfiles
Settingssettings_read, settings_save, settings_test (δοκιμάζει τις ρυθμίσεις SMTP), chatgptsettings
Dashboarddashboard_online, dashboard_referers, dashboard_browsers, dashboard_pages, dashboard_statsκανένα

Το δικαίωμα admin (και κάθε χρήστης με τη σημαία sa, μαζί με το Bot του token) επιτρέπεται σε όλες. Μια κλήση χωρίς δικαίωμα παίρνει σφάλμα, και το login είναι η μόνη κλήση που δεν χρειάζεται συνεδρία.

Δημιουργήστε μια σελίδα και το περιεχόμενό της:

{ "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 απαντά { "success": true }· διαβάστε το id με το pages_list. Για ένα layout, το layouts_save απαντά το id του layout στο value. Όταν σε μια ενημέρωση λείπει ένα πεδίο, το πεδίο καθαρίζεται (ένα title που δεν στέλνετε αποθηκεύεται κενό), οπότε στείλτε ολόκληρη την εγγραφή.

Μεταφόρτωση αρχείων

Το POST /admin/upload/ δέχεται μεταφόρτωση multipart (έως 10 MB) και το POST /admin/upload/base64/ σώμα JSON με data URI (png, jpeg ή gif). Και τα δύο απαντούν με μια λίστα { id, name, type, ext, size, url }, όπου το url είναι /download/<id>.<ext>.

Αντίγραφο ασφαλείας, επαναφορά και εκκαθάριση

Τρεις διαδρομές του controllers/api.js δουλεύουν σε ολόκληρο τον ιστότοπο και απαιτούν το δικαίωμα admin:

ΔιαδρομήΤι κάνει
GET /admin/backup/κατεβάζει ολόκληρο τον χώρο αρχείων (μεταδεδομένα, HTML σελίδων και layouts, αρχεία και αναρτήσεις) ως ένα αρχείο κειμένου με όνομα από τον ιστότοπο και την ημερομηνία
POST /admin/restore/ανεβάζει ένα τέτοιο αρχείο (έως 100 MB) και το φορτώνει.
GET /admin/clear/διαγράφει το περιεχόμενο του ιστότοπου. Απορρίπτει τον χώρο αρχείων και τον φορτώνει ξανά, οπότε οι σελίδες, τα layouts, τα widgets και τα υπόλοιπα αφαιρούντα

Κάντε αντίγραφο ασφαλείας πριν δοκιμάσετε οποιαδήποτε από αυτές, μην ανοίξετε ποτέ το /admin/clear/ σε πρόγραμμα περιήγησης από περιέργεια και κρατήστε το token ιδιωτικό: με αυτό, ένα μόνο GET αδειάζει τον ιστότοπο.