Dotclear


Ignore:
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • admin/comments.php

    r506 r178  
    1717# Creating filter combo boxes 
    1818# Filter form we'll put in html_block 
    19 $status_combo = array(); 
     19$status_combo = array( 
     20'-' => '' 
     21); 
    2022foreach ($core->blog->getAllCommentStatus() as $k => $v) { 
    2123     $status_combo[$v] = (string) $k; 
     
    2325 
    2426$type_combo = array( 
    25 __('comment') => '0', 
    26 __('trackback') => '1' 
     27'-' => '', 
     28__('comment') => 'co', 
     29__('trackback') => 'tb' 
    2730); 
    2831 
     
    4043 
    4144 
     45/* Get comments 
     46-------------------------------------------------------- */ 
     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; 
    4257 
    4358$page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; 
     
    5065     $nb_per_page = (integer) $_GET['nb']; 
    5166} 
    52 $params = new ArrayObject(); 
     67 
    5368$params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page); 
    5469$params['no_content'] = true; 
     70 
     71# Author filter 
     72if ($author !== '') { 
     73     $params['q_author'] = $author; 
     74     $show_filters = true; 
     75} 
     76 
     77# - Type filter 
     78if ($type == 'tb' || $type == 'co') { 
     79     $params['comment_trackback'] = ($type == 'tb'); 
     80     $show_filters = true; 
     81} 
     82 
     83# - Status filter 
     84if ($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 filter 
     92if ($ip) { 
     93     $params['comment_ip'] = $ip; 
     94     $show_filters = true; 
     95} 
     96 
     97# Sortby and order filter 
     98if ($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} 
    55107 
    56108# Actions combo box 
     
    71123$core->callBehavior('adminCommentsActionsCombo',array(&$combo_action)); 
    72124 
    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 } 
    93125/* Get comments 
    94126-------------------------------------------------------- */ 
    95127try { 
    96      $nfparams = $params->getArrayCopy(); 
    97      $filtered = $filterSet->applyFilters($params); 
    98      $core->callBehavior('adminCommentsParams',$params); 
    99128     $comments = $core->blog->getComments($params); 
    100129     $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  
    108130     $comment_list = new adminCommentList($core,$comments,$counter->f(0)); 
    109131} catch (Exception $e) { 
    110132     $core->error->add($e->getMessage()); 
    111133} 
    112 $filterSet->setColumnsForm($comment_list->getColumnsForm()); 
    113134 
    114135/* DISPLAY 
    115136-------------------------------------------------------- */ 
    116 $starting_script = dcPage::jsLoad('js/_comments.js').$filterSet->header();; 
    117  
     137$starting_script = dcPage::jsLoad('js/_comments.js'); 
     138if (!$show_filters) { 
     139     $starting_script .= dcPage::jsLoad('js/filter-controls.js'); 
     140} 
    118141# --BEHAVIOR-- adminCommentsHeaders 
    119142$starting_script .= $core->callBehavior('adminCommentsHeaders'); 
     
    121144dcPage::open(__('Comments and trackbacks'),$starting_script); 
    122145 
    123 echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.$page_title.'</h2>'; 
     146echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Comments and trackbacks').'</h2>'; 
    124147 
    125148if (!$core->error->flag()) 
     
    130153          __('Filters').'</a></p>'; 
    131154     } 
    132      $filterSet->display(); 
     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>'; 
    133194      
    134195     if (!$with_spam) { 
  • admin/posts.php

    r509 r508  
    166166$core->callBehavior('adminPostsFilters',$filterSet); 
    167167 
    168 $filterSet->setFormValues($_GET); 
     168$filterSet->setValues($_GET); 
    169169 
    170170# Get posts 
  • inc/admin/class.dc.filter.php

    r506 r453  
    9191     @param    form_data <b>array</b>   form values (usually $_GET or $_POST) 
    9292     */ 
    93      public function setFormValues ($form_data) { 
     93     public function setValues ($form_data) { 
    9494          $this->hideform = true; 
    9595          if (isset($form_data['clear_filters'])) { 
     
    101101          } 
    102102          foreach ($this->filters as $filter) { 
    103                $filter->setFormValues ($form_data); 
     103               $filter->setValues ($form_data); 
    104104               if ($filter->isEnabled()) { 
    105105                    $this->hideform=false; 
     
    337337     @param    $form_data     <b>array</b>   form data 
    338338     */ 
    339      public function setFormValues($form_data) { 
     339     public function setValues($form_data) { 
    340340          $count=0; 
    341341          while (isset($form_data[$this->getFieldId($count)])) { 
     
    389389     } 
    390390      
    391      public function setValues($value) { 
    392           $this->values = $value; 
    393      } 
    394       
    395      public function getValue() { 
    396           return $this->values; 
    397      } 
    398       
    399391} 
    400392 
     
    444436     } 
    445437      
    446      public function setFormValues($form_data) { 
    447           parent::setFormValues($form_data); 
     438     public function setValues($form_data) { 
     439          parent::setValues($form_data); 
    448440          if (isset($form_data[$this->field_id."_v"])) { 
    449441               $this->verb = ($form_data[$this->field_id."_v"] == 'is') ? 'is' : 'isnot'; 
     
    522514} 
    523515 
    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 } 
    565516?> 
  • inc/core/class.dc.blog.php

    r506 r504  
    18121812           
    18131813          if (isset($params['comment_status'])) { 
    1814                $strReq .= 'AND '.$this->getInParamStr($params,'comment_status','comment_status'); 
    1815           }  
    1816           elseif (!empty($params['comment_status_not'])) // older method, deprecated 
     1814               $strReq .= 'AND comment_status = '.(integer) $params['comment_status'].' '; 
     1815          } 
     1816           
     1817          if (!empty($params['comment_status_not'])) 
    18171818          { 
    18181819               $strReq .= 'AND comment_status <> '.(integer) $params['comment_status_not'].' '; 
Note: See TracChangeset for help on using the changeset viewer.

Sites map