comment_admin_overview
function comment_admin_overview
comment_admin_overview($form, &$form_state, $arg)
Form builder for the comment overview administration form.
Parameters
$arg: Current path's fourth component: the type of overview form ('approval' or 'new').
See also
comment_admin_overview_validate()
comment_admin_overview_submit()
theme_comment_admin_overview()
Related topics
File
- modules/comment/comment.admin.inc, line 34
- Admin page callbacks for the comment module.
Code
function comment_admin_overview($form, &$form_state, $arg) { // Build an 'Update options' form. $form['options'] = array( '#type' => 'fieldset', '#title' => t('Update options'), '#attributes' => array('class' => array('container-inline')), ); if ($arg == 'approval') { $options['publish'] = t('Publish the selected comments'); } else { $options['unpublish'] = t('Unpublish the selected comments'); } $options['delete'] = t('Delete the selected comments'); $form['options']['operation'] = array( '#type' => 'select', '#title' => t('Operation'), '#title_display' => 'invisible', '#options' => $options, '#default_value' => 'publish', ); $form['options']['submit'] = array( '#type' => 'submit', '#value' => t('Update'), ); // Load the comments that need to be displayed. $status = ($arg == 'approval') ? COMMENT_NOT_PUBLISHED : COMMENT_PUBLISHED; $header = array( 'subject' => array('data' => t('Subject'), 'field' => 'subject'), 'author' => array('data' => t('Author'), 'field' => 'name'), 'posted_in' => array('data' => t('Posted in'), 'field' => 'node_title'), 'changed' => array('data' => t('Updated'), 'field' => 'c.changed', 'sort' => 'desc'), 'operations' => array('data' => t('Operations')), ); $query = db_select('comment', 'c')->extend('PagerDefault')->extend('TableSort'); $query->join('node', 'n', 'n.nid = c.nid'); $query->addField('n', 'title', 'node_title'); $query->addTag('node_access'); $result = $query ->fields('c', array('cid', 'subject', 'name', 'changed')) ->condition('c.status', $status) ->limit(50) ->orderByHeader($header) ->execute(); $cids = array(); // We collect a sorted list of node_titles during the query to attach to the // comments later. foreach ($result as $row) { $cids[] = $row->cid; $node_titles[] = $row->node_title; } $comments = comment_load_multiple($cids); // Build a table listing the appropriate comments. $options = array(); $destination = drupal_get_destination(); foreach ($comments as $comment) { // Remove the first node title from the node_titles array and attach to // the comment. $comment->node_title = array_shift($node_titles); $comment_body = field_get_items('comment', $comment, 'comment_body'); $options[$comment->cid] = array( 'subject' => array( 'data' => array( '#type' => 'link', '#title' => $comment->subject, '#href' => 'comment/' . $comment->cid, '#options' => array('attributes' => array('title' => truncate_utf8($comment_body[0]['value'], 128)), 'fragment' => 'comment-' . $comment->cid), ), ), 'author' => theme('username', array('account' => $comment)), 'posted_in' => array( 'data' => array( '#type' => 'link', '#title' => $comment->node_title, '#href' => 'node/' . $comment->nid, ), ), 'changed' => format_date($comment->changed, 'short'), 'operations' => array( 'data' => array( '#type' => 'link', '#title' => t('edit'), '#href' => 'comment/' . $comment->cid . '/edit', '#options' => array('query' => $destination), ), ), ); } $form['comments'] = array( '#type' => 'tableselect', '#header' => $header, '#options' => $options, '#empty' => t('No comments available.'), ); $form['pager'] = array('#theme' => 'pager'); return $form; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!comment!comment.admin.inc/function/comment_admin_overview/7.x