Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function node_revision_overview

Generates an overview table of older revisions of a node.

Parameters

$node: A node object.

Return value

array An array as expected by drupal_render().

See also

node_menu()

1 string reference to 'node_revision_overview'
node_menu in modules/node/node.module
Implements hook_menu().

File

modules/node/node.pages.inc, line 566

Code

function node_revision_overview ($node) {
 drupal_set_title (t ('Revisions for %title', array(
 '%title' => $node->title ,
 )), PASS_THROUGH );
 $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 ('delete revisions') || user_access ('administer nodes')) && node_access ('delete', $node)) {
 $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, 'short'), "node/{$node->nid}"),
 '!username' => theme ('username', array(
 'account' => $revision,
 )),
 )) . ($revision->log != '' ? '<p class="revision-log">' . filter_xss ($revision->log) . '</p>' : ''),
 'class' => array(
 'revision-current',
 ),
 );
 $operations[] = array(
 'data' => drupal_placeholder (t ('current revision')),
 'class' => array(
 'revision-current',
 ),
 'colspan' => 2,
 );
 }
 else {
 $row[] = t ('!date by !username', array(
 '!date' => l (format_date ($revision->timestamp, 'short'), "node/{$node->nid}/revisions/{$revision->vid}/view"),
 '!username' => theme ('username', array(
 'account' => $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);
 }
 $build['node_revisions_table'] = array(
 '#theme' => 'table',
 '#rows' => $rows,
 '#header' => $header,
 );
 return $build;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.