function eck_revision_revision_overview in ECK Revision 7
Generates an overview table of older revisions of an entity.
1 string reference to 'eck_revision_revision_overview'
- eck_revision_menu in ./
eck_revision.module - Implements hook_menu().
File
- ./
eck_revision.pages.inc, line 11 - Page callbacks for revisions management for entities.
Code
function eck_revision_revision_overview($entity_type, $entity_id) {
if (!is_object($entity_id)) {
// Load entity
$entity = reset(entity_load($entity_type, array(
$entity_id,
)));
}
else {
$entity = $entity_id;
}
drupal_set_title(t('Revisions for %title', array(
'%title' => entity_label($entity_type, $entity),
)), PASS_THROUGH);
$header = array(
t('Revision'),
array(
'data' => t('Operations'),
'colspan' => 2,
),
);
$revisions = eck_revision_entity_revision_list($entity_type, $entity);
$rows = array();
$revert_permission = FALSE;
if (user_access("eck revert {$entity_type} entity revisions") || user_access("eck revert {$entity_type} {$entity->type} entity revisions")) {
$revert_permission = TRUE;
}
$delete_permission = FALSE;
if (user_access("eck delete {$entity_type} entity revisions") || user_access("eck revert {$entity_type} {$entity->type} entity revisions")) {
$delete_permission = TRUE;
}
$crud_info = get_bundle_crud_info($entity_type, $entity->type);
$path = eck_revision_get_real_path($crud_info['view']['path'], $entity);
foreach ($revisions as $revision) {
$row = array();
$operations = array();
$date = isset($revision->created) ? $revision->created : NULL;
$user = isset($revision->uid) ? theme('username', array(
'account' => user_load($revision->uid),
)) : NULL;
// Verify if we set the revision path or we keep the current entity path.
$revision_path = $path;
if ($revision->revision_id != $entity->revision_id) {
$revision_path = $path . "/revisions/{$revision->revision_id}/view";
}
// Set Data
$data = $revision->revision_id . ' - ';
if (!empty($date) && !empty($user)) {
$data .= t('!date by !username', array(
'!date' => format_date($date, 'short'),
'!username' => $user,
));
}
elseif (empty($date) && !empty($user)) {
$data .= t('By !username', array(
'!username' => $user,
));
}
elseif (!empty($date) && empty($user)) {
$data .= t('!date', array(
'!date' => format_date($date, 'short'),
));
}
if ($revision->revision_log != '') {
$data .= '<p class="revision-log">' . filter_xss($revision->revision_log) . '</p>';
}
if ($revision->revision_id == $entity->revision_id) {
$row[] = array(
'data' => l($data, $revision_path, array(
'html' => TRUE,
)),
'class' => array(
'revision-current',
),
);
$operations[] = array(
'data' => drupal_placeholder(t('current revision')),
'class' => array(
'revision-current',
),
'colspan' => 2,
);
}
else {
$row[] = l($data, $revision_path, array(
'html' => TRUE,
));
if ($revert_permission) {
$operations[] = l(t('revert'), $path . "/revisions/{$revision->revision_id}/revert");
}
if ($delete_permission) {
$operations[] = l(t('delete'), $path . "/revisions/{$revision->revision_id}/delete");
}
}
$rows[] = array_merge($row, $operations);
}
$build['entity_revisions_table'] = array(
'#theme' => 'table',
'#rows' => $rows,
'#header' => $header,
);
return $build;
}