blog->delJunkComments(); $_SESSION['comments_del_spam'] = true; $core->adminurl->redirect("admin.comments"); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Creating filter combo boxes # Filter form we'll put in html_block $status_combo = array_merge( array('-' => ''), dcAdminCombos::getCommentStatusescombo() ); $type_combo = array( '-' => '', __('Comment') => 'co', __('Trackback') => 'tb' ); $sortby_combo = array( __('Date') => 'comment_dt', __('Entry title') => 'post_title', __('Entry date') => 'post_dt', __('Author') => 'comment_author', __('Status') => 'comment_status' ); $sortby_lex = array( // key in sorty_combo (see above) => field in SQL request 'post_title' => 'post_title', 'comment_author' => 'comment_author', 'comment_spam_filter' => 'comment_spam_filter'); $order_combo = array( __('Descending') => 'desc', __('Ascending') => 'asc' ); /* Get comments -------------------------------------------------------- */ $author = isset($_GET['author']) ? $_GET['author'] : ''; $status = isset($_GET['status']) ? $_GET['status'] : ''; $type = !empty($_GET['type']) ? $_GET['type'] : ''; $sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'comment_dt'; $order = !empty($_GET['order']) ? $_GET['order'] : 'desc'; $ip = !empty($_GET['ip']) ? $_GET['ip'] : ''; $email = !empty($_GET['email']) ? $_GET['email'] : ''; $site = !empty($_GET['site']) ? $_GET['site'] : ''; $with_spam = $author || $status || $type || $sortby != 'comment_dt' || $order != 'desc' || $ip; $show_filters = false; $page = !empty($_GET['page']) ? max(1,(integer) $_GET['page']) : 1; $nb_per_page = 30; if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) { if ($nb_per_page != (integer) $_GET['nb']) { $show_filters = true; } $nb_per_page = (integer) $_GET['nb']; } $params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page); $params['no_content'] = true; # Author filter if ($author !== '') { $params['q_author'] = $author; $show_filters = true; } else { $author=''; } # - Type filter if ($type == 'tb' || $type == 'co') { $params['comment_trackback'] = ($type == 'tb'); $show_filters = true; } else { $type=''; } # - Status filter if ($status !== '' && in_array($status,$status_combo)) { $params['comment_status'] = $status; $show_filters = true; } elseif (!$with_spam) { $params['comment_status_not'] = -2; $status=''; } else { $status=''; } # - IP filter if ($ip) { $params['comment_ip'] = $ip; $show_filters = true; } # - email filter if ($email) { $params['comment_email'] = $email; $show_filters = true; } # - site filter if ($site) { $params['comment_site'] = $site; $show_filters = true; } // Add some sort order if spams displayed if ($with_spam || ($status == -2)) { $sortby_combo[__('IP')] = 'comment_ip'; $sortby_combo[__('Spam filter')] = 'comment_spam_filter'; } # Sortby and order filter if ($sortby !== '' && in_array($sortby,$sortby_combo)) { if (array_key_exists($sortby,$sortby_lex)) { $params['order'] = $core->con->lexFields($sortby_lex[$sortby]); } else { $params['order'] = $sortby; } if ($order !== '' && in_array($order,$order_combo)) { $params['order'] .= ' '.$order; } else { $order = 'desc'; } if ($sortby != 'comment_dt' || $order != 'desc') { $show_filters = true; } } else { $sortby = 'comment_dt'; $order = 'desc'; } # Actions combo box $combo_action = array(); $default = ''; if ($core->auth->check('delete,contentadmin',$core->blog->id) && $status == -2) { $default = 'delete'; } $comments_actions_page = new dcCommentsActionsPage($core,$core->adminurl->get("admin.comments")); if ($comments_actions_page->process()) { return; } /* Get comments -------------------------------------------------------- */ try { $comments = $core->blog->getComments($params); $counter = $core->blog->getComments($params,true); $comment_list = new adminCommentList($core,$comments,$counter->f(0)); } catch (Exception $e) { $core->error->add($e->getMessage()); } /* DISPLAY -------------------------------------------------------- */ dcPage::open(__('Comments and trackbacks'), dcPage::jsLoad('js/_comments.js').dcPage::jsFilterControl($show_filters), dcPage::breadcrumb( array( html::escapeHTML($core->blog->name) => '', __('Comments and trackbacks') => '' )) ); if (!empty($_GET['upd'])) { dcPage::success(__('Selected comments have been successfully updated.')); } elseif (!empty($_GET['del'])) { dcPage::success(__('Selected comments have been successfully deleted.')); } if (!$core->error->flag()) { if (isset($_SESSION['comments_del_spam'])) { dcPage::message(__('Spam comments have been successfully deleted.')); unset($_SESSION['comments_del_spam']); } $spam_count = $core->blog->getComments(array('comment_status'=>-2),true)->f(0); if ($spam_count > 0) { echo '
'; } echo ''; # Show comments $comment_list->display($page,$nb_per_page, '', $show_filters, ($with_spam || ($status == -2)) ); } dcPage::helpBlock('core_comments'); dcPage::close();