Changes in [508:7dbb15fcd538:509:dbad98223895]
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
admin/comments.php
r178 r506 17 17 # Creating filter combo boxes 18 18 # Filter form we'll put in html_block 19 $status_combo = array( 20 '-' => '' 21 ); 19 $status_combo = array(); 22 20 foreach ($core->blog->getAllCommentStatus() as $k => $v) { 23 21 $status_combo[$v] = (string) $k; … … 25 23 26 24 $type_combo = array( 27 '-' => '', 28 __('comment') => 'co', 29 __('trackback') => 'tb' 25 __('comment') => '0', 26 __('trackback') => '1' 30 27 ); 31 28 … … 43 40 44 41 45 /* Get comments46 -------------------------------------------------------- */47 $author = isset($_GET['author']) ? $_GET['author'] : '';48 $status = isset($_GET['status']) ? $_GET['status'] : '';49 $type = !empty($_GET['type']) ? $_GET['type'] : '';50 $sortby = !empty($_GET['sortby']) ? $_GET['sortby'] : 'comment_dt';51 $order = !empty($_GET['order']) ? $_GET['order'] : 'desc';52 $ip = !empty($_GET['ip']) ? $_GET['ip'] : '';53 54 $with_spam = $author || $status || $type || $sortby != 'comment_dt' || $order != 'desc' || $ip;55 56 $show_filters = false;57 42 58 43 $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; … … 65 50 $nb_per_page = (integer) $_GET['nb']; 66 51 } 67 52 $params = new ArrayObject(); 68 53 $params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page); 69 54 $params['no_content'] = true; 70 71 # Author filter72 if ($author !== '') {73 $params['q_author'] = $author;74 $show_filters = true;75 }76 77 # - Type filter78 if ($type == 'tb' || $type == 'co') {79 $params['comment_trackback'] = ($type == 'tb');80 $show_filters = true;81 }82 83 # - Status filter84 if ($status !== '' && in_array($status,$status_combo)) {85 $params['comment_status'] = $status;86 $show_filters = true;87 } elseif (!$with_spam) {88 $params['comment_status_not'] = -2;89 }90 91 # - IP filter92 if ($ip) {93 $params['comment_ip'] = $ip;94 $show_filters = true;95 }96 97 # Sortby and order filter98 if ($sortby !== '' && in_array($sortby,$sortby_combo)) {99 if ($order !== '' && in_array($order,$order_combo)) {100 $params['order'] = $sortby.' '.$order;101 }102 103 if ($sortby != 'comment_dt' || $order != 'desc') {104 $show_filters = true;105 }106 }107 55 108 56 # Actions combo box … … 123 71 $core->callBehavior('adminCommentsActionsCombo',array(&$combo_action)); 124 72 73 $filterSet = new dcFilterSet('comments','comments.php'); 74 75 $authorFilter = new textFilter( 76 'author',__('Author'),'q_author',20,255); 77 $filterSet 78 ->addFilter(new comboFilter( 79 'status',__('Status'), 'comment_status', $status_combo)) 80 ->addFilter(new booleanFilter( 81 'type',__('Type'), 'comment_trackback', $type_combo)) 82 ->addFilter($authorFilter) 83 ->addFilter(new textFilter( 84 'ip',__('IP address'),'comment_ip',20,39)); 85 86 $core->callBehavior('adminCommentsFilters',$filterSet); 87 88 $filterSet->setFormValues($_GET); 89 if (isset($_GET['author'])) { 90 $authorFilter->add(); 91 $authorFilter->setValue($_GET['author']); 92 } 125 93 /* Get comments 126 94 -------------------------------------------------------- */ 127 95 try { 96 $nfparams = $params->getArrayCopy(); 97 $filtered = $filterSet->applyFilters($params); 98 $core->callBehavior('adminCommentsParams',$params); 128 99 $comments = $core->blog->getComments($params); 129 100 $counter = $core->blog->getComments($params,true); 101 if ($filtered) { 102 $totalcounter = $core->blog->getComments($nfparams,true); 103 $page_title = sprintf(__('Comments and Trackacks / %s filtered out of %s'),$counter->f(0),$totalcounter->f(0)); 104 } else { 105 $page_title = __('Comments and Trackacks'); 106 } 107 130 108 $comment_list = new adminCommentList($core,$comments,$counter->f(0)); 131 109 } catch (Exception $e) { 132 110 $core->error->add($e->getMessage()); 133 111 } 112 $filterSet->setColumnsForm($comment_list->getColumnsForm()); 134 113 135 114 /* DISPLAY 136 115 -------------------------------------------------------- */ 137 $starting_script = dcPage::jsLoad('js/_comments.js'); 138 if (!$show_filters) { 139 $starting_script .= dcPage::jsLoad('js/filter-controls.js'); 140 } 116 $starting_script = dcPage::jsLoad('js/_comments.js').$filterSet->header();; 117 141 118 # --BEHAVIOR-- adminCommentsHeaders 142 119 $starting_script .= $core->callBehavior('adminCommentsHeaders'); … … 144 121 dcPage::open(__('Comments and trackbacks'),$starting_script); 145 122 146 echo '<h2>'.html::escapeHTML($core->blog->name).' › '. __('Comments and trackbacks').'</h2>';123 echo '<h2>'.html::escapeHTML($core->blog->name).' › '.$page_title.'</h2>'; 147 124 148 125 if (!$core->error->flag()) … … 153 130 __('Filters').'</a></p>'; 154 131 } 155 156 echo 157 '<form action="comments.php" method="get" id="filters-form">'. 158 '<fieldset><legend>'.__('Filters').'</legend>'. 159 '<div class="three-cols">'. 160 '<div class="col">'. 161 '<label for="type">'.__('Type:').' '. 162 form::combo('type',$type_combo,$type). 163 '</label> '. 164 '<label for="status">'.__('Status:').' '. 165 form::combo('status',$status_combo,$status). 166 '</label>'. 167 '</div>'. 168 169 '<div class="col">'. 170 '<p><label for="sortby">'.__('Order by:').' '. 171 form::combo('sortby',$sortby_combo,$sortby). 172 '</label> '. 173 '<label for="order">'.__('Sort:').' '. 174 form::combo('order',$order_combo,$order). 175 '</label></p>'. 176 '<p><label for="nb" class="classic">'. form::field('nb',3,3,$nb_per_page).' '. 177 __('Comments per page').'</label></p>'. 178 '</div>'. 179 180 '<div class="col">'. 181 '<p><label for="author">'.__('Comment author:').' '. 182 form::field('author',20,255,html::escapeHTML($author)). 183 '</label>'. 184 '<label for="ip">'.__('IP address:').' '. 185 form::field('ip',20,39,html::escapeHTML($ip)). 186 '</label></p>'. 187 '<p><input type="submit" value="'.__('Apply filters').'" /></p>'. 188 '</div>'. 189 190 '</div>'. 191 '<br class="clear" />'. //Opera sucks 192 '</fieldset>'. 193 '</form>'; 132 $filterSet->display(); 194 133 195 134 if (!$with_spam) { -
admin/posts.php
r508 r509 166 166 $core->callBehavior('adminPostsFilters',$filterSet); 167 167 168 $filterSet->set Values($_GET);168 $filterSet->setFormValues($_GET); 169 169 170 170 # Get posts -
inc/admin/class.dc.filter.php
r453 r506 91 91 @param form_data <b>array</b> form values (usually $_GET or $_POST) 92 92 */ 93 public function set Values ($form_data) {93 public function setFormValues ($form_data) { 94 94 $this->hideform = true; 95 95 if (isset($form_data['clear_filters'])) { … … 101 101 } 102 102 foreach ($this->filters as $filter) { 103 $filter->set Values ($form_data);103 $filter->setFormValues ($form_data); 104 104 if ($filter->isEnabled()) { 105 105 $this->hideform=false; … … 337 337 @param $form_data <b>array</b> form data 338 338 */ 339 public function set Values($form_data) {339 public function setFormValues($form_data) { 340 340 $count=0; 341 341 while (isset($form_data[$this->getFieldId($count)])) { … … 389 389 } 390 390 391 public function setValues($value) { 392 $this->values = $value; 393 } 394 395 public function getValue() { 396 return $this->values; 397 } 398 391 399 } 392 400 … … 436 444 } 437 445 438 public function set Values($form_data) {439 parent::set Values($form_data);446 public function setFormValues($form_data) { 447 parent::setFormValues($form_data); 440 448 if (isset($form_data[$this->field_id."_v"])) { 441 449 $this->verb = ($form_data[$this->field_id."_v"] == 'is') ? 'is' : 'isnot'; … … 514 522 } 515 523 524 525 class textFilter extends Filter { 526 protected $size; 527 protected $max; 528 529 public function __construct($id,$desc,$request_param,$size,$max) { 530 parent::__construct($id,$desc,$request_param); 531 $this->options = $options; 532 $this->values=array(); 533 $this->size = $size; 534 $this->max = $max; 535 } 536 537 538 public function getType() { 539 return "text"; 540 } 541 public function add() { 542 parent::add(); 543 $this->values[]=''; 544 } 545 546 public function getFormFields($pos=0) { 547 return '<span class="'.$labelclass.'">'.$this->desc.'</span>'. 548 form::field($this->getFieldId($pos),$this->size,$this->max,html::escapeHTML($this->values[0])); 549 } 550 551 public function applyFilter($params) { 552 $params[$this->request_param]=$this->values[0]; 553 } 554 555 public function setValues($value) { 556 parent::setValues(array($value)); 557 } 558 559 public function getValue() { 560 $v = parent::getValue(); 561 return $v[0]; 562 } 563 564 } 516 565 ?> -
inc/core/class.dc.blog.php
r504 r506 1812 1812 1813 1813 if (isset($params['comment_status'])) { 1814 $strReq .= 'AND comment_status = '.(integer) $params['comment_status'].' '; 1815 } 1816 1817 if (!empty($params['comment_status_not'])) 1814 $strReq .= 'AND '.$this->getInParamStr($params,'comment_status','comment_status'); 1815 } 1816 elseif (!empty($params['comment_status_not'])) // older method, deprecated 1818 1817 { 1819 1818 $strReq .= 'AND comment_status <> '.(integer) $params['comment_status_not'].' ';
Note: See TracChangeset
for help on using the changeset viewer.