You are here

function hook_action_info

Any module can define any number of Drupal actions. The trigger module is an
example of a module that uses actions. An action consists of two or three
parts: (1) an action definition (returned by this hook), (2) a function which
does the action (which by convention is named module + '_' + description of
what the function does + '_action'), and an optional form definition
function that defines a configuration form (which has the name of the action
with '_form' appended to it.)

Return value

An array of action descriptions. Each action description is an associative
array, where the key of the item is the action's function, and the
following key-value pairs:

'type': (required) the type is determined by what object the action
acts on. Possible choices are node, user, comment, and system. Or
whatever your own custom type is. So, for the nodequeue module, the
type might be set to 'nodequeue' if the action would be performed on a
nodequeue.

'description': (required) The human-readable name of the action.

'configurable': (required) If FALSE, then the action doesn't require
any extra configuration. If TRUE, then you should define a form
function with the same name as the key, but with '_form' appended to
it (i.e., the form for 'node_assign_owner_action' is
'node_assign_owner_action_form'.)
This function will take the $context as the only parameter, and is
paired with the usual _submit function, and possibly a _validate
function.

'hooks': (required) An array of all of the operations this action is
appropriate for, keyed by hook name. The trigger module uses this to
filter out inappropriate actions when presenting the interface for
assigning actions to events. If you are writing actions in your own
modules and you simply want to declare support for all possible hooks,
you can set 'hooks' => array('any' => TRUE). Common hooks are 'user',
'nodeapi', 'comment', or 'taxonomy'. Any hook that has been described
to Drupal in hook_hook_info() will work is a possiblity.

'behavior': (optional) Human-readable array of behavior descriptions.
The only one we have now is 'changes node property'. You will almost
certainly never have to return this in your own implementations of this
hook.

The function that is called when the action is triggered is passed two
parameters - an object of the same type as the 'type' value of the
hook_action_info array, and a context variable that contains the context
under which the action is currently running, sent as an array. For example,
the actions module sets the 'hook' and 'op' keys of the context array (so,
'hook' may be 'nodeapi' and 'op' may be 'insert').

Wow, you are the man! I was desperate to figure out why my actions do not show up under Triggers page for an hour or so before I saw your comment. Flushing caches does not help, indeed you have to visit those pages or execute those functions :(