Changeset 884:7d0472c14d9d for plugins
- Timestamp:
- 10/05/12 12:57:46 (13 years ago)
- Branch:
- formfilters
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
plugins/pages/list.php
r782 r884 11 11 # -- END LICENSE BLOCK ----------------------------------------- 12 12 if (!defined('DC_CONTEXT_ADMIN')) { return; } 13 13 14 dcPage::check('pages,contentadmin'); 14 15 15 /* Pager class 16 -------------------------------------------------------- */ 17 class adminPageList extends adminPostList 16 class adminPageList extends adminItemsList 18 17 { 19 18 public function setColumns() 20 19 { 21 $this->addColumn('title',__('Title'),array('adminPostList','getTitle'),' class="maximal"',false); 22 $this->addColumn('date',__('Date'),array('adminPostList','getDate')); 23 $this->addColumn('author',__('Author'),array('adminPostList','getAuthor')); 24 $this->addColumn('comment',__('Comments'),array('adminPostList','getComments')); 25 $this->addColumn('trackback',__('Trackbacks'),array('adminPostList','getTrackbacks')); 26 $this->addColumn('status',__('Status'),array('adminPostList','getStatus')); 20 $this->addColumn('title','post_title',__('Title'),array('adminPostList','getTitle'),array('class' => array('maximal')),true,true,false); 21 $this->addColumn('date','post_dt',__('Date'),array('adminPostList','getDate')); 22 $this->addColumn('datetime','post_dt',__('Date and time'),array('adminPostList','getDateTime')); 23 $this->addColumn('author','user_id',__('Author'),array('adminPostList','getAuthor')); 24 $this->addColumn('comments','nb_comment',__('Comments'),array('adminPostList','getComments')); 25 $this->addColumn('trackbacks','nb_trackback',__('Trackbacks'),array('adminPostList','getTrackbacks')); 26 $this->addColumn('status','post_status',__('Status'),array('adminPostList','getStatus')); 27 $this->default_sortby = 'datetime'; 28 $this->default_order = 'desc'; 29 27 30 } 28 31 … … 31 34 return __('Pages list'); 32 35 } 33 } 34 35 /* Getting pages 36 -------------------------------------------------------- */ 37 $params = array( 38 'post_type' => 'page' 39 ); 40 41 $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; 42 $nb_per_page = 30; 43 44 if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) { 45 $nb_per_page = (integer) $_GET['nb']; 46 } 47 48 $params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page); 49 $params['no_content'] = true; 50 $params['order'] = 'post_position ASC, post_title ASC'; 51 52 try { 53 $pages = $core->blog->getPosts($params); 54 $counter = $core->blog->getPosts($params,true); 55 $post_list = new adminPageList($core,$pages,$counter->f(0)); 56 } catch (Exception $e) { 57 $core->error->add($e->getMessage()); 36 37 protected function getDefaultLine() 38 { 39 return 40 '<tr class="line'.($this->rs->post_status != 1 ? ' offline' : '').'"'. 41 ' id="p'.$this->rs->post_id.'">%s</tr>'; 42 } 43 44 protected function getTitle() 45 { 46 return 47 '<th scope="row" class="maximal">'. 48 form::checkbox(array('entries[]'),$this->rs->post_id,'','','',!$this->rs->isEditable()).' '. 49 '<a href="'.$this->core->getPostAdminURL($this->rs->post_type,$this->rs->post_id).'">'. 50 html::escapeHTML($this->rs->post_title).'</a></th>'; 51 } 52 53 protected function getDate() 54 { 55 return '<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d'),$this->rs->post_dt).'</td>'; 56 } 57 58 protected function getDateTime() 59 { 60 return '<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$this->rs->post_dt).'</td>'; 61 } 62 63 protected function getAuthor() 64 { 65 return '<td class="nowrap">'.$this->rs->user_id.'</td>'; 66 } 67 68 protected function getComments() 69 { 70 return '<td class="nowrap">'.$this->rs->nb_comment.'</td>'; 71 } 72 73 protected function getTrackbacks() 74 { 75 return '<td class="nowrap">'.$this->rs->nb_trackback.'</td>'; 76 } 77 78 protected function getStatus() 79 { 80 $img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />'; 81 switch ($this->rs->post_status) { 82 case 1: 83 $img_status = sprintf($img,__('published'),'check-on.png'); 84 break; 85 case 0: 86 $img_status = sprintf($img,__('unpublished'),'check-off.png'); 87 break; 88 case -1: 89 $img_status = sprintf($img,__('scheduled'),'scheduled.png'); 90 break; 91 case -2: 92 $img_status = sprintf($img,__('pending'),'check-wrn.png'); 93 break; 94 } 95 96 $protected = ''; 97 if ($this->rs->post_password) { 98 $protected = sprintf($img,__('protected'),'locker.png'); 99 } 100 101 $attach = ''; 102 $nb_media = $this->rs->countMedia(); 103 if ($nb_media > 0) { 104 $attach_str = $nb_media == 1 ? __('%d attachment') : __('%d attachments'); 105 $attach = sprintf($img,sprintf($attach_str,$nb_media),'attach.png'); 106 } 107 108 return '<td class="nowrap status">'.$img_status.' '.$protected.' '.$attach.'</td>'; 109 } 110 } 111 112 113 # Getting authors 114 try { 115 $users = $core->blog->getPostsUsers('page'); 116 } catch (Exception $e) { 117 $core->error->add($e->getMessage()); 118 } 119 120 # Getting dates 121 try { 122 $dates = $core->blog->getDates(array('type'=>'month','post_type'=>'page')); 123 } catch (Exception $e) { 124 $core->error->add($e->getMessage()); 125 } 126 127 # Getting langs 128 try { 129 $langs = $core->blog->getLangs(array('post_type'=>'page')); 130 } catch (Exception $e) { 131 $core->error->add($e->getMessage()); 132 } 133 134 # Creating filter combo boxes 135 if (!$core->error->flag()) 136 { 137 # Filter form we'll put in html_block 138 $users_combo = array(); 139 while ($users->fetch()) 140 { 141 $user_cn = dcUtils::getUserCN($users->user_id,$users->user_name, 142 $users->user_firstname,$users->user_displayname); 143 144 if ($user_cn != $users->user_id) { 145 $user_cn .= ' ('.$users->user_id.')'; 146 } 147 148 $users_combo[$user_cn] = $users->user_id; 149 } 150 151 $status_combo = array( 152 ); 153 foreach ($core->blog->getAllPostStatus() as $k => $v) { 154 $status_combo[$v] = (string) $k; 155 } 156 157 # Months array 158 while ($dates->fetch()) { 159 $dt_m_combo[dt::str('%B %Y',$dates->ts())] = $dates->year().$dates->month(); 160 } 161 162 while ($langs->fetch()) { 163 $lang_combo[$langs->post_lang] = $langs->post_lang; 164 } 58 165 } 59 166 … … 62 169 if ($core->auth->check('publish,contentadmin',$core->blog->id)) 63 170 { 64 $combo_action[__('publish')] = 'publish'; 65 $combo_action[__('unpublish')] = 'unpublish'; 66 $combo_action[__('schedule')] = 'schedule'; 67 $combo_action[__('mark as pending')] = 'pending'; 68 } 69 if ($core->auth->check('admin',$core->blog->id)) { 70 $combo_action[__('change author')] = 'author'; 171 $combo_action[__('Status')] = array( 172 __('Publish') => 'publish', 173 __('Unpublish') => 'unpublish', 174 __('Schedule') => 'schedule', 175 __('Mark as pending') => 'pending' 176 ); 177 } 178 if ($core->auth->check('admin',$core->blog->id)) 179 { 180 $combo_action[__('Change')] = array(__('Change author') => 'author'); 71 181 } 72 182 if ($core->auth->check('delete,contentadmin',$core->blog->id)) 73 183 { 74 $combo_action[__(' delete')] = 'delete';184 $combo_action[__('Delete')] = array(__('Delete') => 'delete'); 75 185 } 76 186 77 187 # --BEHAVIOR-- adminPagesActionsCombo 78 188 $core->callBehavior('adminPagesActionsCombo',array(&$combo_action)); 189 190 191 /* Get posts 192 -------------------------------------------------------- */ 193 $post_list = new adminPageList($core); 194 195 $params = new ArrayObject(); 196 $params['post_type'] = 'page'; 197 $params['no_content'] = true; 198 199 $filterSet = new dcFilterSet('pages',$p_url); 200 class monthComboFilter extends comboFilter { 201 public function applyFilter($params) { 202 $month=$this->values[0]; 203 $params['post_month'] = substr($month,4,2); 204 $params['post_year'] = substr($month,0,4); 205 } 206 } 207 $filterSet 208 ->addFilter(new comboFilter( 209 'users',__('Author'), __('Author'), 'user_id', $users_combo)) 210 ->addFilter(new comboFilter( 211 'post_status',__('Status'), __('Status'), 'post_status', $status_combo)) 212 ->addFilter(new comboFilter( 213 'lang',__('Lang'), __('Lang'), 'post_lang', $lang_combo)) 214 ->addFilter(new monthComboFilter( 215 'month',__('Month'),__('Month'), 'post_month', $dt_m_combo,array('singleval' => 1))) 216 ->addFilter(new textFilter( 217 'search',__('Contains'),__('The page contains'), 'search',20,255)); 218 219 $core->callBehavior('adminPagesFilters',$filterSet); 220 $filterSet->setExtra($post_list); 221 222 $filterSet->setup($_GET,$_POST); 223 224 # Get pages 225 try { 226 $nfparams = $params->getArrayCopy(); 227 $filtered = $filterSet->applyFilters($params); 228 $core->callBehavior('adminPostsParams',$params); 229 $posts = $core->blog->getPosts($params); 230 $counter = $core->blog->getPosts($params,true); 231 if ($filtered) { 232 $totalcounter = $core->blog->getPosts($nfparams,true); 233 $page_title = sprintf(__('Pages / %s filtered out of %s'),$counter->f(0),$totalcounter->f(0)); 234 } else { 235 $page_title = __('Pages'); 236 $filters_info = ''; 237 } 238 $post_list->setItems($posts,$counter->f(0)); 239 } catch (Exception $e) { 240 $core->error->add($e->getMessage()); 241 } 242 79 243 80 244 /* Display … … 90 254 //]]> 91 255 </script> 256 <?php 257 echo $filterSet->header(); 258 ?> 92 259 </head> 93 260 94 261 <body> 95 262 <?php 96 echo '<h2>'.html::escapeHTML($core->blog->name).' › <span class="page-title">'.__('Pages').'</span></h2>'.97 '<p class="top-add"><a class="button add" href="'.$p_url.'&act=page">'.__('New page').'</a></p>';98 99 263 if (!$core->error->flag()) 100 264 { 265 echo 266 '<h2>'.html::escapeHTML($core->blog->name).' › <span class="page-title">'.__('Pages').'</span></h2>'. 267 '<p class="top-add"><a class="button add" href="'.$p_url.'&act=page">'.__('New page').'</a></p>'; 268 269 $filterSet->display(); 101 270 # Show pages 102 $post_list->display($page,$nb_per_page, 103 '<form action="posts_actions.php" method="post" id="form-entries">'. 271 $post_list->display('<form action="posts_actions.php" method="post" id="form-entries">'. 104 272 105 273 '%s'. … … 111 279 form::combo('action',$combo_action). 112 280 '<input type="submit" value="'.__('ok').'" /></p>'. 113 form::hidden(array('post_type'),'page'). 114 form::hidden(array('redir'),html::escapeHTML($_SERVER['REQUEST_URI'])). 281 str_replace('%','%%',$filterSet->getFormFieldsAsHidden()). 115 282 $core->formNonce(). 116 283 '</div>'. 117 '</form>'); 118 } 284 '</form>' 285 ); 286 } 287 119 288 dcPage::helpBlock('pages'); 120 289 ?>
Note: See TracChangeset
for help on using the changeset viewer.