interface ModuleInterface (View source)

A feature module: its routes, navigation items, capabilities and templates, enabled through configuration.

Constants

CAP_ZONE_EXPORT

Export formats offered on the zone edit page; the data carries a url_pattern with an {id} placeholder.

CAP_ZONE_IMPORT

Import of zone data; the edit page shows the import entry when any enabled module provides it.

CAP_WHOIS_LOOKUP

WHOIS lookup actions on the zone edit and search pages.

CAP_RDAP_LOOKUP

RDAP lookup actions on the zone edit and search pages.

CAP_DNS_WIZARD

DNS wizard actions on the zone edit page.

Methods

string
getName()

Get unique module identifier (e.g., 'csv_export', 'zone_import_export')

array
getRoutes()

Get route definitions for this module.

array
getNavItems()

Get navigation items to add to the Tools dropdown.

array
getCapabilities()

Get list of capabilities this module provides, from the CAP_* constants above.

array
getCapabilityData(string $capability)

Get data for a specific capability.

string
getTemplatePath()

Get the absolute path to the module's template directory.

Details

string getName()

Get unique module identifier (e.g., 'csv_export', 'zone_import_export')

Return Value

string

array getRoutes()

Get route definitions for this module.

Each route is an associative array with keys:

  • 'name' (string): Route name (e.g., 'module_csv_export')
  • 'path' (string): URL path (e.g., '/zones/{id}/export/csv')
  • 'controller' (string): Fully qualified controller class::method
  • 'methods' (array): HTTP methods (e.g., ['GET'])
  • 'requirements' (array, optional): Parameter regex constraints

Return Value

array

array getNavItems()

Get navigation items to add to the Tools dropdown.

Each item is an associative array with keys:

  • 'label' (string): Display text
  • 'url' (string): URL path
  • 'icon' (string): Bootstrap Icons class name (without 'bi-' prefix)
  • 'page_id' (string): Page identifier for active state detection
  • 'permission' (string, optional): Required permission to show this item

Return Value

array

array getCapabilities()

Get list of capabilities this module provides, from the CAP_* constants above.

Return Value

array

array getCapabilityData(string $capability)

Get data for a specific capability.

For CAP_ZONE_EXPORT, returns an array of export format definitions:

  • 'label' (string): Display text (e.g., 'CSV', 'Zone File')
  • 'url_pattern' (string): URL with {id} placeholder (e.g., '/zones/{id}/export/csv')
  • 'icon' (string): Bootstrap Icons class name (without 'bi-' prefix)
  • 'supports_comments' (string, optional): '1' when the URL accepts ?comments=1 to include record comments

Parameters

string $capability

The capability identifier

Return Value

array

string getTemplatePath()

Get the absolute path to the module's template directory.

Return an empty string if the module has no templates.

Return Value

string