hook_nodeapi y CCK (drupal 6.x)

Events happening in the community are now at Drupal community events on www.drupal.org.
Bbi's picture

Buenas, estoy tratando de crear un módulo que modifica campos en nodos relaccionados. Es decir tenemos un nodo A y con el cck node_reference referenciamos el nodo B y C al A. La función del módulo que estoy creando es detectar cambios en el nodo A para modificar el nodo B y C.

Para ello he usado el hook_nodeapi. Creando la funcion:

function test_nodeapi(&$node, $op){
if ($node->type=="revision"){

   switch ($op) {
      case 'view':
         ..........
      break;
      case 'update':
    ..........
      break;
      case 'delete':
       ..........
      break;
 }

}
}

Solo me ejecuta lo expuesto en el apartado view. Así que añadí un "print $node->nid . ' ' . $op" al inicio de la función y siempre que muestro un nodo de tipo revision me imprime "76 load 76 view 76 alter"
(el 76 es el nid de un nodo de muestra). Con lo que entiendo que cada vez que muestro el nodo se llama 3 veces a la función, una para cargar, otra para verlo y el último que supuestamente es editarlo no se porqué se llama.

He intentado además poner lel caso "insert" pero tampoco me realiza la ejecución.

Como dato os digo que el tipo de nodo "revisión" está creado con CCK, alguien sabría decirme el motivo de las 3 llamadas a la función? y lo mas importante como detectar el caso en que se crea un nodo?.

Muchas gracias.

Comments

Resuelto

Bbi's picture

Ya he encontrado el error. Resulta que sí me ejecutaba el case "inser" Solo que en ese caso yo hacia una inserción en la tabla node_access y justo despues el core o algún otro módulo me hacia un delete de los datos relaccionados con el nodo en dicha tabla. Por eso creia que no me estaba ejecutando esa parte.

Pueden borrar este hilo si quieren.

El otro día hablando con

oskar_calvo's picture

El otro día hablando con otros compañeros de la comunidad, comentabamos algo parecido, ya que para crear un diagrama de gant y un "project" con drupal habría que hacer actualizaciones masivas de campos de cck.

¿Vas ha hacer público el módulo?

Oskar

Madrid

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: