node_revision_overview

  1. drupal
    1. 4.7
    2. 5 node.module
    3. 6 node.pages.inc
    4. 7 node.pages.inc
Versions
4.7 – 7 node_revision_overview($node)

Generate an overview table of older revisions of a node.

Code

modules/node.module, line 1287

<?php
function node_revision_overview($node) {
  drupal_set_title(t('Revisions for %title', array('%title' => check_plain($node->title))));

  $header = array(t('Revision'), array(
      'data' => t('Operations'),
      'colspan' => 2,
    ));

  $revisions = node_revision_list($node);

  $rows = array();
  $revert_permission = FALSE;
  if ((user_access('revert revisions') || user_access('administer nodes')) && node_access('update', $node)) {
    $revert_permission = TRUE;
  }
  $delete_permission = FALSE;
  if (user_access('administer nodes')) {
    $delete_permission = TRUE;
  }
  foreach ($revisions as $revision) {
    $row = array();
    $operations = array();

    if ($revision->current_vid > 0) {
      $row[] = array(
        'data' => t('%date by %username', array('%date' => l(format_date($revision->timestamp, 'small'), "node/$node->nid"), '%username' => theme('username', $revision)))
                               . (($revision->log != '') ? '<p class="revision-log">' . filter_xss($revision->log) . '</p>' : ''), 
        'class' => 'revision-current',
      );
      $operations[] = array(
        'data' => theme('placeholder', t('current revision')),
        'class' => 'revision-current',
        'colspan' => 2,
      );
    }
    else {
      $row[] = t('%date by %username', array('%date' => l(format_date($revision->timestamp, 'small'), "node/$node->nid/revisions/$revision->vid/view"), '%username' => theme('username', $revision)))
               . (($revision->log != '') ? '<p class="revision-log">' . filter_xss($revision->log) . '</p>' : '');
      if ($revert_permission) {
        $operations[] = l(t('revert'), "node/$node->nid/revisions/$revision->vid/revert");
      }
      if ($delete_permission) {
        $operations[] = l(t('delete'), "node/$node->nid/revisions/$revision->vid/delete");
      }
    }
    $rows[] = array_merge($row, $operations);
  }
  $output .= theme('table', $header, $rows);

  return $output;
}
?>