-
-
Notifications
You must be signed in to change notification settings - Fork 81
Things the PHP library does
Sebastian Rettig edited this page Jun 15, 2022
·
6 revisions
So far, it looks like the H5P (Editor) Server does the following things: (boxes indicate what we currently support)
- stores and serves libraries / content types (actual persistence is done in the plugin)
- stores and serves content (actual persistence is done in the plugin)
- CRUD operations on contents (=content.json and parts of h5p.json)
- manages file uploads (= images, video etc.)
- store user state (for continuing later)
- AJAX endpoint for the editor (see AJAX Endpoint)
- backend communication with the H5P hub (see Communication with the H5P Hub)
- register the site
- send usage statistics
- get information about content types on the hub
- download and install new content types / updates of content types on user request
- validation of packages (structural integrity and conformity of content and libraries)
- validation of content against library semantics (+ filter html to prevent cross-site-scripting (XSS) vulnerabilities.)
- manage and check editor tokens (to make sure you have access rights to a session)
- logging & statistics generation: e.g. use of libraries by author, view of embedded content etc. (see h5p-php-library:h5p-event-base.class.php for a list of events)
- alter library files, semantics (allows site admins to change libraries without hacking the actual files; very useful)
- allows downloading h5p packages ("exporting" content)
- provide embed option for content (as div and as iframe)
- support copy & paste in the editor
- admin site / functionality (settings? +library management (what libraries of which version are installed & used how often; add libraries manually, update content of a specific library version))
- (partly supported) check permissions of users (install libraries, download h5p package, embed h5p package, create restricted, update libraries, install recommended, copy h5p?)
- cache assets (aggregates all css and js files into two big files to decrease http requests; done in h5p-php-library:h5p-default-storage.class.php->cacheAssets(...))