Plugin Structure

Plugin Structure

Directory Layout

Each plugin is located in its own, unique directory under the /usr/local/centovacast/system/plugins/ directory on the Centova Cast web interface server.

Within the plugin directory, a single file named hooks.php must exist. This file defines the events for which the plugin should be invoked, as described below.

Any other files created in the plugin directory are ignored by Centova Cast.

The hooks.php File

The hooks.php file must contain a PHP class named PluginHooks_pluginname, where pluginname matches the name of the plugin's directory. For example, to create a plugin named foo, one might create a file called /usr/local/centovacast/system/plugins/foo/hooks.php containing a class named PluginHooks_foo.

The PluginHooks_pluginname class must inherit from the PluginHooks class which is defined elsewhere by Centova Cast. For example:

class PluginHooks_foo extends PluginHooks {


To register itself with Centova Cast, the class must implement a method named install_hooks(), described in the next section. Aside from the install_hooks() method, Centova Cast does not impose any further structural requirements on the class and the implementation details are left up to the developer.

The install_hooks Method

Within the plugin class, the install_hooks() method is used to register callbacks which will be called by Centova Cast whenever a specific action is performed within Centova Cast. This method should call the PluginHooks::register() method once for each callback to be registered.

A typical install_hooks() method looks like:

public function install_hooks() {
    /* optionally, additional PluginHooks::register() calls here */

In the above example, the plugin asks Centova Cast to invoke a function named callback_function() every time an event named eventname is triggered.

The complete list of available events is provided in the Event Reference section of the plugin API documentation.

Return Values

A callback should typically return PluginHooks::OK to indicate that the event was handled successfully.

Some events accept return values, however, which allow the plugin to abort the execution of the event. (For example, the pre-create-account event allows you to return an error to stop the account from being created.)

For events that accept return values, a callback may return PluginHooks::ERROR to indicate that Centova Cast should not proceed with the event. The plugin may also optionally return an error message by calling $this->set_error(). Any such error message will be displayed in the web interface (when applicable) and in the Centova Cast event log.