Package comparison module: configuration and rendering
Installing the package comparison layout module, how its instances are stored, the checks on saving and the data sources of the portal-side block.
The package comparison is a standard layout module of the framework. One instance shows one package family; it has no table of its own: prices come from the package, the matrix cells from the entitlement data.
Data
Table names carry the installation's own prefix in the database.
| Place | Role |
|---|---|
module (framework) | the instance; its settings in JSON: name, family (package family code), status |
setting (framework) | installation state: module_dlbt_pricing_status |
extension_path | entries for the admin and portal controllers (migration) |
package families, packages, package_family_card_row, feature | source of the displayed content (read only) |
Process
- Installation: the migration only registers the extension path and the function; the module must be installed in the Extensions list, which sets the status setting to 1 (with the framework's right to modify extensions).
- Opening: without the right the permission error page is shown. The family selector offers active families, plus the family already set in the instance but switched off since, marked as disabled.
- Saving: right ("Warning: You do not have permission to modify this module!"), name of 3–64 characters, existing family; on error "Warning: Please check the form carefully for errors!". A new instance is created through the framework's module model and its ID is written into the form's hidden field; an existing one is updated. Read-back; failure: "The module could not be saved."
- Portal rendering: with the configured family code it renders the same block as the package comparison landing page. An empty code or an unknown or inactive family gives empty output; on a database error the model logs and returns an empty result.
- Uninstalling: there is no own data; the framework removes the instances.
Permissions
- Base access: the module's path; saving also needs the framework's modify right, installing needs the modify right on extension modules.
- Function right:
module/dlbt_pricingedit(system class) — opening and saving. - Content scope: none; the displayed data is public pricing content and there is no permission check on the portal side.