Drupal permite la ejecución automática de determinadas acciones cuando se producen ciertos eventos en el sistema, llamados disparadores (triggers).
Mediante las acciones y los disparadores podremos, por ejemplo, enviar un correo a ciertos usuarios del sitio cuando un nodo es creado o modificado, o bloquear a un usuario si se detectan ciertas palabras en un comentario que haya publicado.
En esta unidad estudiaremos cómo se configuran las acciones y los disparadores del sitio, una vez activado el módulo Trigger. También veremos cómo crear y configurar acciones avanzadas.
Introducción a acciones y disparadores
Drupal permite la ejecución automática de acciones cuando se producen determinados eventos en el sitio. Por tanto, para que se ejecute una acción hace falta que se dispare o active un evento determinado. En Drupal estos eventos son conocidos como disparadores o triggers.
Cuando se activa el disparador, se ejecutan automáticamente las acciones asociadas. ¿Y cuándo se ejecuta un disparador? Pues esto dependerá de la naturaleza del mismo. Por ejemplo, un disparador puede activarse al crear o modificar un nodo, con el alta de un usuario, al ejecutar el cron del sistema, etc.
Drupal incorpora en el núcleo el módulo Trigger, inicialmente desactivado, que permite gestionar las acciones y disparadores. Una vez activado, podremos acceder a la configuración de disparadores desde:
Administración->Estructura->Disparadores
Los disparadores se agrupan en categorías, según el elemento sobre el que actúan: comentario, nodo, sistema, taxonomía y usuario.
El funcionamiento es tan sencillo como asignar a un disparador las acciones que queremos que se ejecuten cuando ocurra ese evento. Al desplegar el selector "Elija una acción", se mostrarán las acciones disponibles.
Las acciones se gestionan desde:
Administración->Configuración->Sistema->Acciones
Existen dos tipos de acciones: simples y avanzadas. Como veremos en el próximo apartado, las acciones simples se pueden usar directamente, mientras que las acciones avanzadas deben crearse con una configuración específica.
Acciones simples y avanzadas
Para ver las acciones disponibles accederemos a:
Administración->Configuración->Sistema->Acciones
Algunos módulos podrán añadir nuevas acciones a este catálogo inicial, por lo que convendrá revisar este listado al instalar un nuevo módulo.
Las acciones se clasifican en:
- Acciones simples: Son acciones que están listas para ser usadas sin necesidad de configuración adicional.
- Acciones avanzadas: Se trata de acciones que precisan de un proceso de configuración anterior para que puedan estar disponibles para su uso.
A su vez las acciones tendrán asignado un tipo, que indica el elemento sobre el que actúa (comentario, nodo, usuario, entidad, etc.).
Acciones simples
Las acciones simples disponibles inicialmente son:
- Acciones de tipo comentario (comment): Estas acciones estarán disponibles únicamente para los disparadores que actúan sobre comentarios.
- Publicar comentario (Publish comment).
- Guardar comentario (Save comment).
- Despublicar comentario (Unpublish comment).
- Acciones de tipo nodo (node): Estas acciones estarán disponibles únicamente para los disparadores que actúan sobre los nodos.
- Marcar contenido como fijo al comienzo de las listas (Make content sticky).
- Desmarcar contenido como fijo al comienzo de las listas (Make content unsticky).
- Colocar contenido en la página principal (Promote content to front page).
- Publicar contenido (Publish content).
- Guardar contenido (Save content). Esta opción puede ser útil cuando deseamos actualizar el contenido, por ejemplo para que se actualice su caché.
- Eliminar contenido de la página principal (Remove content from front page). Esta acción no elimina el contenido, únicamente desactiva la opción de Colocar contenido en la página principal.
- Despublicar contenido (Unpublish content).
- Acciones de tipo usuario (user): Estas acciones están disponibles para todos los disparadores.
- Bloquear el acceso a la IP del usuario actual (Ban IP address of current user).
- Bloquear al usuario actual (Block current user).
Como ejemplo de acciones añadidas por otros módulos encontraremos las siguientes acciones añadidas por el módulo Views Bulk Operations, que sólo estarán disponibles si previamente hemos instalado el módulo:
- Acciones de tipo entidad (entity): Estas acciones están disponibles únicamente a través de las vistas que utilizan Views Bulk Operations.
- Pasar el id de entidad como argumento a una página (Pass ids as arguments to a page).
- Eliminar elemento (Delete item).
Acciones avanzadas
Como ya hemos comentado, las acciones avanzadas requieren configuración. Existe un conjunto de acciones avanzadas, a partir de las cuales podemos crear nuevas acciones. Al crear una acción avanzada se solicitará información de configuración adicional, que dependerá del tipo de acción.
Para crear una acción avanzada es necesario seleccionar un tipo de acción avanzada y hacer clic en el botón Crear. Luego completaremos la información adicional solicitada y guardaremos la acción. Cada acción avanzada tiene una Etiqueta por defecto, que es recomendable cambiarla para diferenciarla de otras acciones del mismo tipo creadas.
Las acciones avanzadas disponibles inicialmente son:
- Despublicar comentarios que contengan las palabras clave: Podemos indicar una lista de palabras separadas por coma (,). También se pueden incluir cadenas completas entre comillas.
- Cambiar autoría del contenido: Cambia el autor del contenido al nombre de usuario indicado.
- Retirar de la publicación el contenido que contenga las palabras clave: El contenido no se eliminará, simplemente se marcará como no publicado.
- Mostrar un mensaje al usuario: El mensaje se mostrará integrado en la página, como cualquier otro mensaje de aviso de Drupal. Podemos usar comodines o variables de sustitución para componer el mensaje.
- Enviar correo electrónico: Permite construir un mensaje que se enviará por correo electrónico a la dirección de correo indicada.
- Redirigir a la URL: Redirige al usuario a la URL indicada.
- Ejecutar un script PHP cualquiera:
- Modificar roles de usuario:
- Cancelar cuenta de usuario:
Disparadores
Las acciones nunca se ejecutarán si no están asignadas a un disparador. Para administrar los disparadores y asignarles acciones, debemos ir a:
Administración->Estructura->Disparadores
Las acciones disponibles en cada disparador dependerán del tipo de elemento sobre el que actúe el disparador.
Los disparadores disponibles inicialmente están organizados en cinco categorías:
- Disparadores de tipo comentario: Eventos relacionados con los comentarios:
- Al guardar contenido nuevo o al actualizar uno ya existente.
- Después de guardar un comentario nuevo.
- Después de guardar un comentario modificado.
- Después de borrar un comentario.
- Cuando un comentario está siendo visualizado por unusuario autentificado.
- Disparadores de tipo nodo: Eventos relacionados con los nodos:
- Después de guardar nuevo contenido o de actualizar contenido existente.
- Después de guardar contenido nuevo.
- Después de guardar contenido actualizado.
- Después de borrar contenido.
- Cuando el contenido sea visto por usuario registrado.
- Disparadores de tipo sistema: Eventos relacionados con el sistema:
- Cuando CRON se ejecute. Las acciones se ejecutarán cada vez que se ejecute el cron del sistema.
- Disparadores de tipo taxonomía: Eventos relacionados con la taxonomía:
- Después de guardar un nuevo término en la base de datos.
- Después de guardar un término actualizado en la base de datos.
- Después de borrar un término.
- Disparadores de tipo usuario: Eventos relacionados con los usuarios:
- Después de crear una nueva cuenta de usuario.
- Después de actualizar una cuenta de usuario.
- Después de que se haya borrado un usuario.
- Después de que un usuario haya iniciado sesión.
- Después de que se haya desconectado un usuario.
- o Cuando se esté viendo un perfil de usuario.
En definitiva, Drupal nos permite asignar acciones que se ejecutarán cuando se den determinadas circunstancias definidas por medio de los disparadores.
Un disparador puede tener asignadas varias acciones, tanto simples como avanzadas. Ten en cuenta que las acciones avanzadas se pueden editar desde el listado de acciones, pero no desde la asignación al disparador. Las acciones asignadas a un disparador se pueden desactivar mediante el enlace desasignar.
Para comprobar el funcionamiento de las acciones tan sólo tendremos que provocar en el sitio un evento que lance un disparador (crear un nodo, publicar un comentario, etc.).