UserExtended
UserExtended copied to clipboard
Add a backend sub page (A child [submenu] of the users tab) for managing modules.
The backend page will be called 'Module Manager' and contains the following features:
- Enable/Disable a module
- Display version and other module meta data.
- Locking a modules version. This will disable the module if it updates.
- Viewing module documentation [how-to] [overview] etc.
- Enable/Disable specific injects for each module. On/off switch for each injection type. Defaults: true.
This will also require the creation of a module_manager table for storing the settings above.
For future reference, this is the DB structure:
- id : increment integer
- name : string
- author : string
- description : text
- version : string
- visible : boolean
- enabled : boolean
- locked : boolean
- updated : boolean
- flags : json/text
Extra notes:
- Updated becomes true the first time the table see's it's stored module version is != to the module version. Updated becomes false the first time the module manager is loaded.
- The flags column is for storing the disabling/enabling of injections on a per module basis
- Visible determines whether or not a module should expose its API. This is false if the module only serves to inject rather than also expose an API.
Extra functions to be added to modules. These are entirely optional:
- getDocumentation() : array Returns documentation in MD or html format back to display on the module manager. The key is the page name in slug form and the value is the documentation content for that page.
- getUpdateNotes() : array Returns an array where the key is the version number and value at that key is the update notes for that version.
Completed the design,
The enable, lock version, and inject checkboxes need to do something. They currently don't actually do anything.