_mediamosa_maintenance_view_revision($nid, $vid)Show details of a revision.
$vid The revision number.
sites/all/modules/mediamosa/maintenance/browse/mediamosa_maintenance_browse_revision.inc, line 143
<?php
function _mediamosa_maintenance_view_revision($nid, $vid) {
// If we are set as Home page, the breadcrumb isnt set, lets do it here.
$breadcrumb = array();
$breadcrumb[] = l(t('Home'), NULL);
$breadcrumb[] = l(t('Administer'), 'admin');
$breadcrumb[] = l(t('MediaMosa'), 'admin/mediamosa');
$breadcrumb[] = l(t('Browse'), 'admin/mediamosa/browse');
$breadcrumb[] = l(t('Revision'), 'admin/mediamosa/browse/revision');
drupal_set_breadcrumb($breadcrumb);
$node_current = node_load($nid);
$node_revision = node_load($nid, $vid);
// Get all vids from this node so we can figure out the previous node revision.
$nids = db_select('node_revision', 'nr')
->fields('nr', array('vid'))
->condition('nid', $nid)
->orderBy('vid', 'ASC')
->execute()
->fetchCol();
$key = array_search($vid, $nids);
$node_previous_revision = array();
if (isset($nids[$key - 1])) {
$node_previous_revision = node_load($nid, $nids[$key - 1]);
}
// Get the fields we want to show.
$fields_to_show = mediamosa_node::get_fields($node_current);
$fields_to_skip = array('created', 'changed', 'command', 'vid', 'nid', 'transcode_profile_id', 'version');
$header = array(
array('data' => t('Key')),
array('data' => t('Value before change (Revision @vid)', array('@vid' => (isset($node_previous_revision->vid) ? $node_previous_revision->vid : 'none'))) ),
array('data' => t('Value after change (Revision @vid)', array('@vid' => (isset($node_revision->vid) ? $node_revision->vid : 'none')))),
array('data' => t('Current Value (Revision @vid)', array('@vid' => (isset($node_current->vid) ? $node_current->vid : 'none')))),
);
$rows = array();
foreach ($fields_to_show as $field) {
if (in_array($field, $fields_to_skip)) {
continue;
}
// Show values in.
if (is_array($node_current->{$field})) {
$fields = $node_current->{$field};
foreach ($fields as $field2 => $value) {
$rows[] = _mediamosa_maintenance_revision_line(
$field2,
isset($node_previous_revision->{$field}[$field2]) ? $node_previous_revision->{$field}[$field2] : '',
isset($node_revision->{$field}[$field2]) ? $node_revision->{$field}[$field2] : '',
isset($node_current->{$field}[$field2]) ? $node_current->{$field}[$field2] : ''
);
}
}
else {
$rows[] = _mediamosa_maintenance_revision_line(
$field,
isset($node_previous_revision->{$field}) ? $node_previous_revision->{$field} : '',
isset($node_revision->{$field}) ? $node_revision->{$field} : '',
isset($node_current->{$field}) ? $node_current->{$field} : ''
);
}
}
// Load the user.
$user = user_load($node_revision->uid);
// Build output.
$output = theme('mediamosa_maintenance_browse_revision_info', array('node' => $node_revision, 'user' => $user));
$output .= theme('table', array('header' => $header, 'rows' => $rows, 'empty' => t('Unable to find changes.')));
$output .= theme('pager');
return $output;
}
?>