Dotclear


Ignore:
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • admin/comments.php

    r178 r506  
    1717# Creating filter combo boxes 
    1818# Filter form we'll put in html_block 
    19 $status_combo = array( 
    20 '-' => '' 
    21 ); 
     19$status_combo = array(); 
    2220foreach ($core->blog->getAllCommentStatus() as $k => $v) { 
    2321     $status_combo[$v] = (string) $k; 
     
    2523 
    2624$type_combo = array( 
    27 '-' => '', 
    28 __('comment') => 'co', 
    29 __('trackback') => 'tb' 
     25__('comment') => '0', 
     26__('trackback') => '1' 
    3027); 
    3128 
     
    4340 
    4441 
    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; 
    5742 
    5843$page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; 
     
    6550     $nb_per_page = (integer) $_GET['nb']; 
    6651} 
    67  
     52$params = new ArrayObject(); 
    6853$params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page); 
    6954$params['no_content'] = true; 
    70  
    71 # Author filter 
    72 if ($author !== '') { 
    73      $params['q_author'] = $author; 
    74      $show_filters = true; 
    75 } 
    76  
    77 # - Type filter 
    78 if ($type == 'tb' || $type == 'co') { 
    79      $params['comment_trackback'] = ($type == 'tb'); 
    80      $show_filters = true; 
    81 } 
    82  
    83 # - Status filter 
    84 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 filter 
    92 if ($ip) { 
    93      $params['comment_ip'] = $ip; 
    94      $show_filters = true; 
    95 } 
    96  
    97 # Sortby and order filter 
    98 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 } 
    10755 
    10856# Actions combo box 
     
    12371$core->callBehavior('adminCommentsActionsCombo',array(&$combo_action)); 
    12472 
     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); 
     89if (isset($_GET['author'])) { 
     90     $authorFilter->add(); 
     91     $authorFilter->setValue($_GET['author']); 
     92} 
    12593/* Get comments 
    12694-------------------------------------------------------- */ 
    12795try { 
     96     $nfparams = $params->getArrayCopy(); 
     97     $filtered = $filterSet->applyFilters($params); 
     98     $core->callBehavior('adminCommentsParams',$params); 
    12899     $comments = $core->blog->getComments($params); 
    129100     $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 
    130108     $comment_list = new adminCommentList($core,$comments,$counter->f(0)); 
    131109} catch (Exception $e) { 
    132110     $core->error->add($e->getMessage()); 
    133111} 
     112$filterSet->setColumnsForm($comment_list->getColumnsForm()); 
    134113 
    135114/* DISPLAY 
    136115-------------------------------------------------------- */ 
    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 
    141118# --BEHAVIOR-- adminCommentsHeaders 
    142119$starting_script .= $core->callBehavior('adminCommentsHeaders'); 
     
    144121dcPage::open(__('Comments and trackbacks'),$starting_script); 
    145122 
    146 echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Comments and trackbacks').'</h2>'; 
     123echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.$page_title.'</h2>'; 
    147124 
    148125if (!$core->error->flag()) 
     
    153130          __('Filters').'</a></p>'; 
    154131     } 
    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(); 
    194133      
    195134     if (!$with_spam) { 
  • admin/posts.php

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

    r453 r506  
    9191     @param    form_data <b>array</b>   form values (usually $_GET or $_POST) 
    9292     */ 
    93      public function setValues ($form_data) { 
     93     public function setFormValues ($form_data) { 
    9494          $this->hideform = true; 
    9595          if (isset($form_data['clear_filters'])) { 
     
    101101          } 
    102102          foreach ($this->filters as $filter) { 
    103                $filter->setValues ($form_data); 
     103               $filter->setFormValues ($form_data); 
    104104               if ($filter->isEnabled()) { 
    105105                    $this->hideform=false; 
     
    337337     @param    $form_data     <b>array</b>   form data 
    338338     */ 
    339      public function setValues($form_data) { 
     339     public function setFormValues($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      
    391399} 
    392400 
     
    436444     } 
    437445      
    438      public function setValues($form_data) { 
    439           parent::setValues($form_data); 
     446     public function setFormValues($form_data) { 
     447          parent::setFormValues($form_data); 
    440448          if (isset($form_data[$this->field_id."_v"])) { 
    441449               $this->verb = ($form_data[$this->field_id."_v"] == 'is') ? 'is' : 'isnot'; 
     
    514522} 
    515523 
     524 
     525class 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} 
    516565?> 
  • inc/core/class.dc.blog.php

    r504 r506  
    18121812           
    18131813          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 
    18181817          { 
    18191818               $strReq .= 'AND comment_status <> '.(integer) $params['comment_status_not'].' '; 
Note: See TracChangeset for help on using the changeset viewer.

Sites map