diff options
Diffstat (limited to 'modules/node/node.admin.inc')
-rw-r--r-- | modules/node/node.admin.inc | 99 |
1 files changed, 25 insertions, 74 deletions
diff --git a/modules/node/node.admin.inc b/modules/node/node.admin.inc index 6d0bea7e6..618f0b25c 100644 --- a/modules/node/node.admin.inc +++ b/modules/node/node.admin.inc @@ -392,23 +392,18 @@ function node_admin_nodes() { $multilanguage = (module_exists('translation') || db_query("SELECT COUNT(*) FROM {node} WHERE language <> ''")->fetchField()); // Build the sortable table header. - $header = array(); - $header[] = theme('table_select_header_cell'); - $header[] = array('data' => t('Title'), 'field' => 'n.title'); - $header[] = array('data' => t('Type'), 'field' => 'n.type'); - $header[] = array('data' => t('Author'), 'field' => 'u.name'); - $header[] = array('data' => t('Status'), 'field' => 'n.status'); - $header[] = array('data' => t('Updated'), 'field' => 'n.changed', 'sort' => 'desc'); + $header = array( + 'title' => array('data' => t('Title'), 'field' => 'n.title'), + 'type' => array('data' => t('Type'), 'field' => 'n.type'), + 'author' => array('data' => t('Author'), 'field' => 'u.name'), + 'status' => array('data' => t('Status'), 'field' => 'n.status'), + 'changed' => array('data' => t('Updated'), 'field' => 'n.changed', 'sort' => 'desc') + ); if ($multilanguage) { - $header[] = array('data' => t('Language'), 'field' => 'n.language'); + $header['language'] = array('data' => t('Language'), 'field' => 'n.language'); } - $header[] = array('data' => t('Operations')); - - $form['header'] = array( - '#type' => 'value', - '#value' => $header, - ); - + $header['operations'] = array('data' => t('Operations')); + $query = db_select('node', 'n')->extend('PagerDefault')->extend('TableSort'); $query->join('users', 'u', 'n.uid = u.uid'); node_build_filter_query($query); @@ -435,6 +430,7 @@ function node_admin_nodes() { '#options' => $options, '#default_value' => 'approve', ); + unset($options); $form['options']['submit'] = array( '#type' => 'submit', '#value' => t('Update'), @@ -445,24 +441,26 @@ function node_admin_nodes() { $destination = drupal_get_destination(); $nodes = array(); foreach ($result as $node) { - $nodes[$node->nid] = ''; - $options = empty($node->language) ? array() : array('language' => $languages[$node->language]); - $form['title'][$node->nid] = array('#markup' => l($node->title, 'node/' . $node->nid, $options) . ' ' . theme('mark', node_mark($node->nid, $node->changed))); - $form['name'][$node->nid] = array('#markup' => check_plain(node_type_get_name($node))); - $form['username'][$node->nid] = array('#markup' => theme('username', $node)); - $form['status'][$node->nid] = array('#markup' => ($node->status ? t('published') : t('not published'))); - $form['changed'][$node->nid] = array('#markup' => format_date($node->changed, 'short')); + $l_options = empty($node->language) ? array() : array('language' => $languages[$node->language]); + $options[$node->nid] = array( + 'title' => l($node->title, 'node/' . $node->nid, $l_options) . ' ' . theme('mark', node_mark($node->nid, $node->changed)), + 'type' => check_plain(node_type_get_name($node)), + 'author' => theme('username', $node), + 'status' => $node->status ? t('published') : t('not published'), + 'changed' => format_date($node->changed, 'short'), + ); if ($multilanguage) { - $form['language'][$node->nid] = array('#markup' => empty($node->language) ? t('Language neutral') : t($languages[$node->language]->name)); + $options[$node->nid]['language'] = empty($node->language) ? t('Language neutral') : t($languages[$node->language]->name); } - $form['operations'][$node->nid] = array('#markup' => l(t('edit'), 'node/' . $node->nid . '/edit', array('query' => $destination))); + $options[$node->nid]['operations'] = l(t('edit'), 'node/' . $node->nid . '/edit', array('query' => $destination)); } $form['nodes'] = array( - '#type' => 'checkboxes', - '#options' => $nodes, + '#type' => 'tableselect', + '#header' => $header, + '#options' => $options, + '#empty' => t('No content available.'), ); $form['pager'] = array('#markup' => theme('pager', NULL)); - $form['#theme'] = 'node_admin_nodes'; return $form; } @@ -508,53 +506,6 @@ function node_admin_nodes_submit($form, &$form_state) { } } - -/** - * Theme node administration overview. - * - * @ingroup themeable - */ -function theme_node_admin_nodes($form) { - $output = ''; - $output .= drupal_render($form['options']); - - $header = $form['header']['#value']; - - $has_posts = isset($form['title']) && is_array($form['title']); - if ($has_posts) { - $rows = array(); - foreach (element_children($form['title']) as $key) { - $row = array(); - $row[] = drupal_render($form['nodes'][$key]); - $row[] = drupal_render($form['title'][$key]); - $row[] = drupal_render($form['name'][$key]); - $row[] = drupal_render($form['username'][$key]); - $row[] = drupal_render($form['status'][$key]); - $row[] = drupal_render($form['changed'][$key]); - if (isset($form['language'])) { - $row[] = drupal_render($form['language'][$key]); - } - $row[] = drupal_render($form['operations'][$key]); - $rows[] = $row; - } - } - else { - $rows[] = array( - array('data' => t('No content available.'), 'colspan' => count($header)), - ); - } - - $output .= theme('table', $header, $rows); - - if ($form['pager']['#markup']) { - $output .= drupal_render($form['pager']); - } - - $output .= drupal_render_children($form); - - return $output; -} - function node_multiple_delete_confirm($form, &$form_state, $nodes) { $form['nodes'] = array('#prefix' => '<ul>', '#suffix' => '</ul>', '#tree' => TRUE); // array_filter returns only elements with TRUE values |