drupaldrupal-6drupal-nodes

Loading the previous revision of a node


When you get a node, how do you load the previous version (revision)?

I know how loading a revision but not how getting the previous revision number ($node->vid is the current revision).

thanks


Solution

  • Supposing that you have a node object $node, you can use the following code to get the previous revision.

    $previous_vid = db_result( 
      db_query('SELECT MAX(vid) AS vid FROM {node_revisions} WHERE vid < %d AND nid = %d', $node->vid, $node->nid)
    );
    

    Once you have the previous revision, you can load the new node object with node_load(array('nid' => $node-nid, 'vid' => $previous_vid)).

    The code should check if db_result() returns FALSE, in the case there isn't a previous revision. To note that the field vid is global for each node; it doesn't contain the same value for different nodes.