function revision_deletion_list_form in Revision Deletion 6
Same name and namespace in other branches
- 5 revision_deletion.module \revision_deletion_list_form()
Form to list all revisions of a node.
1 string reference to 'revision_deletion_list_form'
- revision_deletion_list in ./
revision_deletion.module - List all revisions of a node so they can be deleted manually.
File
- ./
revision_deletion.module, line 270 - Node Revision Deletion, written by Greg Holsclaw
Code
function revision_deletion_list_form($form_state, $node) {
drupal_add_css(drupal_get_path('module', 'revision_deletion') . '/revision_deletion.css');
if ($diff = module_exists('diff')) {
module_load_include('inc', 'diff', 'diff.pages');
$form = drupal_retrieve_form('diff_node_revisions', $form_state, $node);
$form['show_diff'] = $form['submit'];
$form['show_diff']['#submit'] = array(
'diff_node_revisions_submit',
);
$form['show_diff']['#validate'] = array(
'diff_node_revisions_validate',
);
unset($form['info'], $form['operations'], $form['submit']);
}
else {
$form = array();
}
$limit = variable_get('revision_delete_list_limit', 25);
$show_conditional = variable_get('revision_delete_list_show_conditional', 1);
$keep_original = variable_get('revision_delete_list_keep_original', 0);
$keep_date_last = variable_get('revision_delete_list_keep_date_last', 0);
$keep_current = variable_get('revision_delete_list_keep_current', 1209600);
$limit = variable_get('revision_delete_limit', 20);
$destination = drupal_get_destination();
$now = isset($_SERVER['REQUEST_TIME']) ? $_SERVER['REQUEST_TIME'] : time();
$nid = $node->nid;
$title = $node->title;
drupal_set_title(t('Revisions for "@title"', array(
'@title' => $title,
)));
$accounts = array();
$form['header'] = array(
'#type' => 'value',
'#value' => array(
t('Delete'),
t('Revision ID'),
t('User'),
t('Date/Time'),
t('Operations'),
),
);
if ($diff) {
$form['header']['#value'][] = 'show diff button';
}
if ($show_conditional) {
$form['header']['#value'][] = t('Notes');
}
$form['nid'] = array(
'#type' => 'value',
'#value' => $nid,
);
$keeper = FALSE;
$revisions = revision_deletion_get_list($node->nid);
foreach ($revisions as $rev) {
$vid = $rev->vid;
$ops = array();
if (!isset($accounts[$rev->uid])) {
$acct = user_load(array(
'uid' => $rev->uid,
));
$accounts[$rev->uid] = theme('username', $acct);
}
$form['select'][$vid] = array(
'#type' => 'checkbox',
'#disabled' => $vid == $rev->current,
'#default_value' => $rev->select,
'#return_value' => array(
'action' => 'delete',
'vid' => $vid,
'nid' => $rev->nid,
'title' => $rev->title,
'type' => $rev->type,
),
);
$form['class'][$vid] = array(
'#value' => $rev->class,
);
$form['vid'][$vid] = array(
'#value' => l($vid, 'node/' . $nid . '/revisions/' . $vid . '/view'),
);
$form['user'][$vid] = array(
'#value' => $accounts[$rev->uid],
);
$form['timestamp'][$vid] = array(
'#value' => format_date($rev->timestamp, 'small'),
);
$form['log'][$vid] = array(
'#value' => filter_xss($rev->log),
);
if ($vid != $rev->current) {
$ops[] = l(t('revert'), "node/{$nid}/revisions/{$vid}/revert", array(
'query' => $destination,
));
$ops[] = l(t('delete'), "node/{$nid}/revisions/{$vid}/delete", array(
'query' => $destination,
));
}
$form['operations'][$vid] = array(
'#value' => implode(' | ', $ops),
);
$form['msg'][$vid] = array(
'#value' => $rev->msgs,
);
}
$form['no_confirm'] = array(
'#value' => '<p>' . t('Note that there is no confirmation for this action.') . '</p>',
);
$form['pager'] = array(
'#value' => theme('pager', array(), $limit),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Delete selected'),
);
return $form;
}