node_revision_delete

  1. drupal
    1. 4.7
    2. 5 node.module
    3. 7 node.module
Versions
4.7 – 5 node_revision_delete($nid, $revision)
7 node_revision_delete($revision_id)

Delete the revision with specified revision number. A "delete revision" nodeapi event is invoked when a revision is deleted.

Code

modules/node.module, line 1375

<?php
function node_revision_delete($nid, $revision) {
  if (user_access('administer nodes')) {
    $node = node_load($nid);
    if (node_access('delete', $node)) {
      // Don't delete the current revision
      if ($revision != $node->vid) {
        $node = node_load($nid, $revision);
        $form = array();
        $form['nid'] = array(
          '#type' => 'value',
          '#value' => $nid,
        );
        $form['vid'] = array(
          '#type' => 'value',
          '#value' => $revision,
        );
        return confirm_form('node_revision_delete_confirm', $form,  
                     t('Are you sure you want to delete %title revision %revision?', array('%title' => theme('placeholder', $node->title), '%revision' => theme('placeholder', $revision))), 
                     "node/$nid/revisions", '', t('Delete'), t('Cancel'));
      }
      else {
        drupal_set_message(t('Deletion failed. You tried to delete the current revision.'));
      }
      if (db_result(db_query('SELECT COUNT(vid) FROM {node_revisions} WHERE nid = %d', $nid)) > 1) {
        drupal_goto("node/$nid/revisions");
      }
      else {
        drupal_goto("node/$nid");
      }
    }
  }
  drupal_access_denied();
}
?>