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.

PlaceRole
module (framework)the instance; its settings in JSON: name, family (package family code), status
setting (framework)installation state: module_dlbt_pricing_status
extension_pathentries for the admin and portal controllers (migration)
package families, packages, package_family_card_row, featuresource of the displayed content (read only)

Process

  1. 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).
  2. 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.
  3. 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."
  4. 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.
  5. 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_pricing edit (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.