Index: node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node.module,v
retrieving revision 1.519
diff -u -F^function -r1.519 node.module
--- node.module 11 Aug 2005 12:53:39 -0000 1.519
+++ node.module 18 Aug 2005 00:08:20 -0000
@@ -758,14 +758,19 @@ function node_admin_nodes() {
drupal_set_message(t('The items have been deleted.'));
}
else {
- $extra = '
';
- foreach ($edit['nodes'] as $nid => $value) {
- if ($value) {
- $title = db_result(db_query('SELECT title FROM {node} WHERE nid = %d', $nid));
- $extra .= '- '. form_hidden('nodes]['. $nid, 1) . check_plain($title) .'
';
+ //theme nodes to delete into a list, injecting any module-specific data
+ $list = array();
+ $nid_array = array_keys(array_intersect($edit['nodes'], array('1')));
+ $confirm_extras = module_invoke_all('delete_confirm', $nid_array);
+ $result = db_query('SELECT nid, title FROM {node} WHERE nid IN(%s)', implode(', ', $nid_array));
+ while ($delete = db_fetch_object($result)) {
+ $extras = '';
+ foreach ($confirm_extras as $confirm_extra) {
+ $extras .= array_key_exists($delete->nid, $confirm_extra) ? $confirm_extra[$delete->nid] : '';
}
+ $list[] = form_hidden('nodes]['. $delete->nid, 1) . check_plain($delete->title) . $extras;
}
- $extra .= '
';
+ $extra = theme_item_list($list);
$extra .= form_hidden('operation', 'delete');
$output = theme('confirm',
@@ -1589,6 +1594,11 @@ function node_delete($edit) {
}
else {
$extra = form_hidden('nid', $node->nid);
+ //inject any module specific data
+ $extras = module_invoke_all('delete_confirm', array($node->nid));
+ foreach ($extras as $data) {
+ $extra .= implode('', $data);
+ }
$output = theme('confirm',
t('Are you sure you want to delete %title?', array('%title' => theme('placeholder', $node->title))),
$_GET['destination'] ? $_GET['destination'] : 'node/'. $node->nid,