Dotclear

Changeset 1905:d72d24250853


Ignore:
Timestamp:
09/16/13 13:28:17 (12 years ago)
Author:
Dsls
Branch:
actionsreloaded
Children:
1999:a0ed28c2da5a, 2037:cdcd97549428
Message:

RIP admin/comments_actions.php

Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • admin/comments.php

    r1719 r1905  
    131131$combo_action = array(); 
    132132$default = ''; 
    133 if ($core->auth->check('publish,contentadmin',$core->blog->id)) 
     133if ($core->auth->check('delete,contentadmin',$core->blog->id) && $status == -2) 
    134134{ 
    135      $combo_action[__('Publish')] = 'publish'; 
    136      $combo_action[__('Unpublish')] = 'unpublish'; 
    137      $combo_action[__('Mark as pending')] = 'pending'; 
    138      $combo_action[__('Mark as junk')] = 'junk'; 
    139 } 
    140 if ($core->auth->check('delete,contentadmin',$core->blog->id)) 
    141 { 
    142      $combo_action[__('Delete')] = 'delete'; 
    143      if ($status == -2) { 
    144           $default = 'delete'; 
    145      } 
    146 } 
    147  
    148 # --BEHAVIOR-- adminCommentsActionsCombo 
    149 $core->callBehavior('adminCommentsActionsCombo',array(&$combo_action)); 
     135     $default = 'delete'; 
     136} 
     137 
     138$comments_actions_page = new dcCommentsActionsPage($core,'comments.php'); 
     139 
     140$comments_actions_page->process(); 
    150141 
    151142/* Get comments 
     
    165156     $starting_script .= dcPage::jsLoad('js/filter-controls.js'); 
    166157} 
    167 # --BEHAVIOR-- adminCommentsHeaders 
    168 $starting_script .= $core->callBehavior('adminCommentsHeaders'); 
    169158 
    170159dcPage::open(__('Comments and trackbacks'),$starting_script, 
     
    175164          )) 
    176165); 
     166if (!empty($_GET['upd'])) { 
     167     dcPage::success(__('Selected comments have been successfully updated.')); 
     168} elseif (!empty($_GET['del'])) { 
     169     dcPage::success(__('Selected comments have been successfully deleted.')); 
     170} 
    177171 
    178172if (!$core->error->flag()) 
     
    254248     # Show comments 
    255249     $comment_list->display($page,$nb_per_page, 
    256      '<form action="comments_actions.php" method="post" id="form-comments">'. 
     250     '<form action="comments.php" method="post" id="form-comments">'. 
    257251      
    258252     '%s'. 
     
    262256      
    263257     '<p class="col right"><label for="action" class="classic">'.__('Selected comments action:').'</label> '. 
    264      form::combo('action',$combo_action,$default,'','','','title="'.__('Actions').'"'). 
     258     form::combo('action',$comments_actions_page->getCombo(),$default,'','','','title="'.__('Actions').'"'). 
    265259     $core->formNonce(). 
    266260     '<input type="submit" value="'.__('ok').'" /></p>'. 
  • admin/comments_actions.php

    r1474 r1905  
    1111# -- END LICENSE BLOCK ----------------------------------------- 
    1212 
     13/* ### THIS FILE IS DEPRECATED                         ### */ 
     14/* ### IT IS ONLY USED FOR PLUGINS COMPATIBILITY ### */ 
     15 
    1316require dirname(__FILE__).'/../inc/admin/prepend.php'; 
    1417 
    1518dcPage::check('usage,contentadmin'); 
    1619 
    17 $params = array(); 
    18 $redir = 'comments.php'; 
     20$comments_actions_page = new dcCommentsActionsPage($core,'posts.php'); 
    1921 
    20 if (!empty($_POST['action']) && !empty($_POST['comments'])) 
    21 { 
    22      $comments = $_POST['comments']; 
    23      $action = $_POST['action']; 
    24       
    25      if (isset($_POST['redir']) && strpos($_POST['redir'],'://') === false) 
    26      { 
    27           $redir = $_POST['redir']; 
    28      } 
    29      else 
    30      { 
    31           $redir = 
    32           'comments.php?type='.$_POST['type']. 
    33           '&author='.$_POST['author']. 
    34           '&status='.$_POST['status']. 
    35           '&sortby='.$_POST['sortby']. 
    36           '&ip='.$_POST['ip']. 
    37           '&order='.$_POST['order']. 
    38           '&page='.$_POST['page']. 
    39           '&nb='.(integer) $_POST['nb']; 
    40      } 
    41       
    42      foreach ($comments as $k => $v) { 
    43           $comments[$k] = (integer) $v; 
    44      } 
    45       
    46      $params['sql'] = 'AND C.comment_id IN('.implode(',',$comments).') '; 
    47       
    48      if (!isset($_POST['full_content']) || empty($_POST['full_content'])) { 
    49           $params['no_content'] = true; 
    50      } 
    51       
    52      $co = $core->blog->getComments($params); 
    53       
    54      $co_ids = array(); 
    55      while ($co->fetch())     { 
    56           $co_ids[] = $co->comment_id; 
    57      } 
    58       
    59      # --BEHAVIOR-- adminCommentsActions 
    60      $core->callBehavior('adminCommentsActions',$core,$co,$action,$redir); 
    61       
    62      if (preg_match('/^(publish|unpublish|pending|junk)$/',$action)) 
    63      { 
    64           switch ($action) { 
    65                case 'unpublish' : $status = 0; break; 
    66                case 'pending' : $status = -1; break; 
    67                case 'junk' : $status = -2; break; 
    68                default : $status = 1; break; 
    69           } 
    70            
    71           try { 
    72                $core->blog->updCommentsStatus($co_ids,$status); 
    73           } catch (Exception $e) { 
    74                $core->error->add($e->getMessage()); 
    75           } 
    76            
    77           if (!$core->error->flag()) { 
    78                http::redirect($redir); 
    79           } 
    80      } 
    81      elseif ($action == 'delete') 
    82      { 
    83           try { 
    84                // Backward compatibility 
    85                foreach($co_ids as $comment_id) 
    86                { 
    87                     # --BEHAVIOR-- adminBeforeCommentDelete 
    88                     $core->callBehavior('adminBeforeCommentDelete',$comment_id);                     
    89                } 
    90                 
    91                # --BEHAVIOR-- adminBeforeCommentsDelete 
    92                $core->callBehavior('adminBeforeCommentsDelete',$co_ids); 
    93                 
    94                $core->blog->delComments($co_ids); 
    95           } catch (Exception $e) { 
    96                $core->error->add($e->getMessage()); 
    97           } 
    98            
    99           if (!$core->error->flag()) { 
    100                http::redirect($redir); 
    101           } 
    102      } 
    103 } 
     22$comments_actions_page->process(); 
    10423 
    105 /* DISPLAY 
    106 -------------------------------------------------------- */ 
    107 dcPage::open(__('Comments')); 
    108  
    109 if (!isset($action)) { 
    110      dcPage::close(); 
    111      exit; 
    112 } 
    113  
    114 $hidden_fields = ''; 
    115 while ($co->fetch()) { 
    116      $hidden_fields .= form::hidden(array('comments[]'),$co->comment_id); 
    117 }  
    118  
    119 if (isset($_POST['redir']) && strpos($_POST['redir'],'://') === false) 
    120 { 
    121      $hidden_fields .= form::hidden(array('redir'),html::escapeURL($_POST['redir'])); 
    122 } 
    123 else 
    124 { 
    125      $hidden_fields .= 
    126      form::hidden(array('type'),$_POST['type']). 
    127      form::hidden(array('author'),$_POST['author']). 
    128      form::hidden(array('status'),$_POST['status']). 
    129      form::hidden(array('sortby'),$_POST['sortby']). 
    130      form::hidden(array('ip'),$_POST['ip']). 
    131      form::hidden(array('order'),$_POST['order']). 
    132      form::hidden(array('page'),$_POST['page']). 
    133      form::hidden(array('nb'),$_POST['nb']); 
    134 } 
    135  
    136 # --BEHAVIOR-- adminCommentsActionsContent 
    137 $core->callBehavior('adminCommentsActionsContent',$core,$action,$hidden_fields); 
    138  
    139 echo '<p><a class="back" href="'.str_replace('&','&amp;',$redir).'">'.__('Back to comments list').'</a></p>'; 
    140  
    141 dcPage::close(); 
    14224?> 
  • inc/admin/actions/class.dcaction.php

    r1903 r1905  
    3838     /** @var array list of url parameters (usually $_POST) */ 
    3939     protected $from; 
     40     /** @var string form field name for "entries" (usually "entries") */ 
     41     protected $field_entries; 
    4042      
    4143     /** @var string title for checkboxes list, if displayed */ 
     
    6365          $this->entries = array(); 
    6466          $this->from = new ArrayObject($_POST); 
     67          $this->field_entries = 'entries'; 
    6568     } 
    6669      
     
    8891                    $this->combo[$k] = array_merge ($this->combo[$k],$a); 
    8992               } elseif ($a instanceof formSelectOption) { 
    90                     $values = $a->value; 
     93                    $values = array($a->value); 
    9194                    $this->combo[$k] = $a->value; 
    9295               } else { 
    93                     $values = $a; 
     96                    $values = array($a); 
    9497                    $this->combo[$k] = $a; 
    9598               } 
     
    135138          $ret = ''; 
    136139          foreach  ($this->entries as $id->$v) { 
    137                $ret .= form::hidden('entries[]',$id); 
     140               $ret .= form::hidden($this->field_entries.'[]',$id); 
    138141          } 
    139142          return $ret; 
     
    206209          $redir_args = array_merge($params,$this->redir_args); 
    207210          if ($with_selected_entries) { 
    208                $redir_args['entries'] = array_keys($this->entries); 
     211               $redir_args[$this->field_entries] = array_keys($this->entries); 
    209212          } 
    210213          return $this->uri.'?'.http_build_query($redir_args); 
     
    282285               $ret .=  
    283286                    '<tr><td>'. 
    284                     form::checkbox(array('entries[]'),$id,true,'','').'</td>'. 
     287                    form::checkbox(array($this->field_entries.'[]'),$id,true,'','').'</td>'. 
    285288                    '<td>'.   $title.'</td></tr>'; 
    286289          } 
  • inc/admin/lib.pager.php

    r1670 r1905  
    257257               $pager->html_next = $this->html_next; 
    258258               $pager->var_page = 'page'; 
    259                 
     259               $comments = array(); 
     260               if (isset($_REQUEST['comments'])) { 
     261                    foreach ($_REQUEST['comments'] as $v) { 
     262                         $comments[(integer)$v]=true; 
     263                    } 
     264               }               
    260265               $html_block = 
    261266               '<table><caption class="hidden">'.__('Comments and trackbacks list').'</caption><tr>'. 
     
    279284               while ($this->rs->fetch()) 
    280285               { 
    281                     echo $this->commentLine(); 
     286                    echo $this->commentLine(isset($comments[$this->rs->comment_id])); 
    282287               } 
    283288                
     
    288293     } 
    289294      
    290      private function commentLine() 
     295     private function commentLine($checked) 
    291296     { 
    292297          global $author, $status, $sortby, $order, $nb_per_page; 
     
    336341          $res .= 
    337342          '<td class="nowrap">'. 
    338           form::checkbox(array('comments[]'),$this->rs->comment_id,'','','',0).'</td>'. 
     343          form::checkbox(array('comments[]'),$this->rs->comment_id,$checked,'','',0).'</td>'. 
    339344          '<td class="nowrap" abbr="'.__('Type and author').'" scope="raw">'. 
    340345               '<a href="'.$comment_url.'" title="'.$comment_title.'">'. 
  • inc/prepend.php

    r1806 r1905  
    6565$__autoload['dcUrlHandlers']            = dirname(__FILE__).'/public/lib.urlhandlers.php'; 
    6666$__autoload['dcPostsActionsPage']            = dirname(__FILE__).'/admin/actions/class.dcactionposts.php'; 
     67$__autoload['dcCommentsActionsPage']              = dirname(__FILE__).'/admin/actions/class.dcactioncomments.php'; 
    6768$__autoload['dcActionsPage']            = dirname(__FILE__).'/admin/actions/class.dcaction.php'; 
    6869 
  • plugins/dclegacy/_admin.php

    r1806 r1905  
    1313 
    1414$GLOBALS['core']->addBehavior('adminPostsActionsPage',array('dcLegacyPosts','adminPostsActionsPage')); 
     15$GLOBALS['core']->addBehavior('adminCommentsActionsPage',array('dcLegacyComments','adminCommentsActionsPage')); 
    1516 
    1617/* Handle deprecated behaviors :  
     
    4041     } 
    4142} 
    42 ?> 
     43 
     44 
     45/* Handle deprecated behaviors :  
     46    * adminCommentsActionsCombo 
     47     * adminCommentsActionsHeaders 
     48     * adminCommentsActionsContent 
     49*/ 
     50class dcLegacyComments 
     51{ 
     52     public static function adminCommentsActionsPage($core, dcCommentsActionsPage $as) { 
     53          $stub_actions = new ArrayObject(); 
     54          $core->callBehavior('adminCommentsActionsCombo',array($stub_actions)); 
     55          if (!empty($stub_actions)) { 
     56               $as->addAction($stub_actions,array('dcLegacyComments','onActionLegacy')); 
     57          } 
     58     } 
     59      
     60     public static function onActionLegacy($core, dcCommentsActionsPage $as, $Comment) { 
     61          $core->callBehavior('adminCommentsActions',$core,$as->getRS(),$as->getAction(),$as->getRedirection()); 
     62          $as->beginPage('', 
     63               dcPage::jsLoad('js/jquery/jquery.autocomplete.js'). 
     64               dcPage::jsMetaEditor(). 
     65               $core->callBehavior('adminCommentsActionsHeaders'),''); 
     66          $core->callBehavior('adminCommentsActionsContent',$core,$as->getAction(),$as->getHiddenFields(true)); 
     67          $as->endPage(); 
     68      
     69     } 
     70} 
Note: See TracChangeset for help on using the changeset viewer.

Sites map