Docs »

Plugins »

Extensions

Plugins contribute new functionality by registering extensions on extension points.

Extensions are defined in a plugin’s manifest within the <extensions> block.

Each extension entry looks like:



<extension point="com.example.extension_point">
	<id>com.example.extension_name</id>
	<name>Extension name</name>
	<class>
		<file>relative/path/to/file.php</file>
		<name>Class_Name</name>
	</class>
	<params/>
</extension>


  • <extension point="..."> specifies the extension point of the extension.

  • <id> is the globally unique ID of the extension. Like plugins, this should only contain lowercase letters (a-z), numbers (0-9), underscores (_), and dots (.). The extension ID should always start with the ID of the plugin.

  • <name> is the human-friendly name of the extension.

  • <class> assigns code from the plugin to the extension. Each extension point provides a parent class which must be extended by the plugin’s extension. The <name> element in this block specifies the class name of this implementation, and <file> is the path to a source code file, relative to the plugin’s directory. This almost always starts with api/.

  • <params> is where each extension manifest can set configuration details based on the extension point.

Extension points

Name Extension Point
Bot Action devblocks.event.action
Bot Event devblocks.event
Cache Engine devblocks.cache.engine
Calendar Datasource cerberusweb.calendar.datasource
Community Portal cerb.portal
Connected Account Service Provider cerb.service.provider
Controller devblocks.controller
Event Listener devblocks.listener.event
Http Request Listener devblocks.listener.http
Login Authenticator cerberusweb.login
Mail Transport Type cerberusweb.mail.transport
Message Toolbar Item cerberusweb.message.toolbaritem
Page Menu Item cerberusweb.ui.page.menu.item
Page Section cerberusweb.ui.page.section
Page Type cerberusweb.page
Prebody Renderer cerberusweb.renderer.prebody
Profile Script cerberusweb.ui.context.profile.script
Profile Tab Type cerb.profile.tab
Profile Widget Type cerb.profile.tab.widget
Record Type devblocks.context
Reply Toolbar Item cerberusweb.reply.toolbaritem
Rest API Controller cerberusweb.rest.controller
Scheduled Job cerberusweb.cron
Search Engine devblocks.search.engine
Search Schema devblocks.search.schema
Sensor Type cerberusweb.datacenter.sensor
Storage Engine devblocks.storage.engine
Storage Schema devblocks.storage.schema
Support Center Controller usermeet.sc.controller
Support Center Login Authenticator usermeet.login.authenticator
Support Center RSS Feed usermeet.sc.rss.controller
Webhook Listener Type cerb.webhooks.listener.engine
Workspace Page Type cerberusweb.ui.workspace.page
Workspace Tab Type cerberusweb.ui.workspace.tab
Workspace Widget Datasource cerberusweb.ui.workspace.widget.datasource
Workspace Widget Type cerberusweb.ui.workspace.widget