Omeka_Plugin_Broker

Package: Plugin\Broker

class Omeka_Plugin_Broker

Plugin Broker for Omeka.

For example, $broker->callHook(‘add_action_contexts’, array(‘controller’ => $controller)) would call the ‘add_action_contexts’ on all plugins, and it would provide the controller object as the first argument to all implementations of that hook.

property _callbacks

protected array

Array of hooks that have been implemented for plugins.

property _filters

protected array

Stores all defined filters.

Storage in array where $_filters[‘filterName’][‘priority’][‘plugin’] = $hook;

property _current

protected string

The directory name of the current plugin (used for calling hooks)

addHook($hook, $callback, $plugin = null)

Add a hook implementation for a plugin.

Parameters:
  • $hook (string) – Name of the hook being implemented.

  • $callback (string) – PHP callback for the hook implementation.

  • $plugin (string|null) – Optional name of the plugin for which to add the hook. If omitted, the current plugin is used.

getHook($pluginDirName, $hook)

Get the hook implementation for a plugin.

Parameters:
  • $pluginDirName (string) – Name of the plugin to get the implementation from.

  • $hook (string) – Name of the hook to get the implementation for.

Returns:

callback|null

setCurrentPluginDirName($pluginDirName)

Set the currently-focused plugin by directory name.

The plugin helper functions do not have any way of determining what plugin to is currently in focus. These get/setCurrentPluginDirName methods allow the broker to know how to delegate to specific plugins if necessary.

Parameters:
  • $pluginDirName (string) – Plugin to set as current.

getCurrentPluginDirName()

Get the directory name of the currently-focused plugin.

Returns:

string

callHook($name, $args = array(), $plugin = null)

Call a hook by name.

Hooks can either be called globally or for a specific plugin only.

Parameters:
  • $name (string) – The name of the hook.

  • $args (array) – Arguments to be passed to the hook implementations.

  • $plugin (Plugin|string) – Name of the plugin that will invoke the hook.

addFilter($name, $callback, $priority = 10)

Add a filter implementation.

Parameters:
  • $name (string|array) – Name of filter being implemented.

  • $callback (callback) – PHP callback for filter implementation.

  • $priority

_getFilterNamespace()

Retrieve the namespace to use for the filter to be added.

Returns:

string Name of the current plugin (if applicable). Otherwise, a magic constant that denotes globally applied filters.

_getFilterKey($name)

Retrieve the key used for indexing the filter. The filter name should be either a string or an array of strings. If the filter name is an object, that might cause fiery death when using the serialized value for an array key.

Parameters:
  • $name (string|array) – Filter name.

Returns:

string Key for filter indexing.

getFilters($hookName)

Return all the filters for a specific hook in the correct order of execution.

Parameters:
  • $hookName (string|array) – Filter name.

Returns:

array Indexed array of filter callbacks.

clearFilters($name = null)

Clear all implementations for a filter (or all filters).

Parameters:
  • $name (string|null) – The name of the filter to clear. If null or omitted, all filters will be cleared.

applyFilters($name, $value, $args = array())

Run an arbitrary value through a set of filters.

Parameters:
  • $name (mixed) – The filter name.

  • $value (mixed) – The value to filter.

  • $args (array) – Additional arguments to pass to filter implementations.

Returns:

mixed Result of applying filters to $value.

register()

Register the plugin broker so that plugin writers can use global functions like add_plugin_hook() to interact with the plugin API.