Drupal 7 ¿Cómo se activa/engancha el evento "Publicar" del nodo?
drupal-7 drupal-nodes (4)
Con la funcionalidad central, no hay gancho. Pero el módulo de revisión proporciona uno.
Sin embargo, puede solucionarlo comprobando el estado del nodo en la actualización OP. Aunque no es muy inteligente.
<?php
function MYMODULE_node_update($node){
if (isset($node->original->status) && $node->original->status == 0 && $node->status == 1){
MYMODULE_mymagic_func($node);
}
}
En Drupal 7, deseo agregar un proceso adicional cuando un nodo se publique. ¿Cómo puedo activar cuando se activa el evento "Publicar" de ese nodo?
¿Hay algún gancho para el nodo "Publicar"?
La respuesta de Ayesh K es buena.
Y también encontré otra alternativa mediante el uso de "Rules"
Drupal para activar el evento de publicación.
si la función desencadenante es para el nodo de actualización es auto, cambie la función MYMODULE_node_update ($ node) a la función MYMODULE_node_presave ($ node)
Como escribe Ayesh K, tampoco conozco una funcionalidad básica. Su solución temporal funciona, pero se pierde el caso de que un nodo recién creado se publique de inmediato.
Así que extendí el código y lo envolví en una función:
/**
* Checks if a node is being published.
*
* @param object $node
* The node to check.
*
* @return bool
* TRUE if node is now published and
* 1) was not published before or
* 2) did not exist before;
* FALSE in all other cases.
*/
function MYMODULE_node_is_being_published(&$node) {
if (isset($node->original)) {
return (
isset($node->original->status) &&
$node->original->status == 0 &&
$node->status == 1
);
}
else {
return $node->status == 1;
}
}