hook_action_info

hooks/core.php, line 65

Versions
hooks
hook_action_info()

Declara información acerca de una o más acciones de Drupal.

Cualquier módulo puede definir cualquier numero de acciones de Drupal. El modulo trigger es un ejemplo que utiliza acciones. Una acción consiste en dos o tres partes: (1) una definición de la acción (devuelta por este hook), (2) una funcion que procesa la accion (que por convención se llama modulo + '_' + descripcion de lo que la función hace + '_action'), y opcionalmente una función de definición de formulario que define un formulario de configuración (que se nombra con el nombre de la accion seguido de '_form'.)

A la función que es llamada cuando esta acción se disparada se le pasan dos parámetros - un objeto del mismo tipo que el valor de 'type' en el array de hook_action_info, y una variable context que contiene el contexto bajo el cual la acción está funcionando, enviada en forma de array. Por ejemplo, el módulo actions define las claves 'hook' y 'op' de el array de contexto (entonces, 'hook' puede ser 'nodeapi' y 'op' puede ser 'insert').

Valor de retorno

  • Un array de descripciones de acciones. Cada descripción de acción es un array asociativo, donde la clave de cada item es la función de la acción, y los siguientes pares de clave-valor:
    • 'type': (requerido) el tipo es determinado por el tipo de objeto sobre el cual actua la acción. Las opciones posibles son node, user, comment, y system. O cual sea su propio tipo. Entonces, para el móodulo nodequeue, el tipo debería ser 'nodequeue' si la acción es realizada sobre un nodequeue.
    • 'description': (requerido) El nombre legible por humanos de la acción.
    • 'configurable' (requerido) Si vale FALSE, entonces la acción no necesita configuración extra. Si vale TRUE, entonces ustede deberia definir una función de formulario con el mismo nombre que la clave pero con '_form' agregado al final. (ejemplo: el formulario para 'node_assign_owner_action' es 'node_assign_owner_action_form'.) Esta función tomará la varibale $context como único parámetro, y TODO, and is paired with the usual _submit function, and possibly a _validate function.
    • 'hooks': (requerido) Un array de todas las operaciones para las que esta acción es apropiada, identificados por el nombre del hook. El módulo trigger usa esto para quitar las acciones inapropiadas cualdo muestra la interfaz para asignar acciones a eventos. Si usted está escribiendo acciones en sus própios módulos y simplemente desea declarar soporte para todos los hooks posibles, usted puede escribir 'hooks' => array('any' => TRUE). Los hooks comunes son 'user', 'nodeapi', 'comment', o 'taxonomy'. Cualquier hook que ha sido indicado a Drupal en el hook_hook_info() podrá ser utilizado como una posibilidad.
    • 'behaviour': (opcional) Un array de descripciones de comportamiento legibles por humanos. El único que tenemos ahora es 'cambiar propiedades de nodo'. Usted casi seguro que nunca tendrá que devolver este valor en sus implementaciones propias de este hook.

Código

<?php
function hook_action_info() {
  return array(
    'comment_unpublish_action' => array(
      'description' => t('Unpublish comment'),
      'type' => 'comment',
      'configurable' => FALSE,
      'hooks' => array(
        'comment' => array('insert', 'update'),
      )
    ),
    'comment_unpublish_by_keyword_action' => array(
      'description' => t('Unpublish comment containing keyword(s)'),
      'type' => 'comment',
      'configurable' => TRUE,
      'hooks' => array(
        'comment' => array('insert', 'update'),
      )
    )
  );
}
?>