drupal 7 – ¿Cómo puedo detectar cuando un nodo cambia de 'Publicado' a 'No publicado'?

Pregunta:

En hook_node_update () , puedo saber fácilmente el 'estado' de un nodo (si está publicado o no) después de que se haya actualizado.

Sin embargo, ¿existe una manera fácil de verificar si el nodo actualizado se publicó, pero ahora no? (O viceversa)?

Creo que las reglas pueden tener alguna condición para 'el valor del nodo ha cambiado' o algo por el estilo, pero me gustaría hacerlo mediante programación.

Encontré este problema por fago (desarrollador de Rules) en drupal.org que parece tratar con esto en Drupal 7, pero se agradecería una buena explicación.

Respuesta:

No importa. Después de leer el problema vinculado anteriormente (especialmente el comentario # 38 ), descubrí que el objeto $ node (cualquier entidad, en realidad) almacena la copia en caché 'original' en $ entidad-> original.

Entonces, quería detectar si un nodo cambió de 'estado = 1' a 'estado = 0' (esto sucede cuando el nodo no está publicado), y el siguiente código hace esto:

<?php
function custom_node_update($node) {
  if ($node->type == 'article') {
    // Act on the unpublishing of an article.
    if ($node->original->status == 1 && $node->status == 0) {
      // Do something here.
    }
    // Act on the publishing of an article.
    if ($node->original->status == 0 && $node->status == 1) {
      // Do something here.
    }
  }
}
?>

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım