rs->isEmpty()) { echo '

'.__('No page').'

'; } else { $pager = new pager($page,$this->rs_count,$nb_per_page,10); $pager->html_prev = $this->html_prev; $pager->html_next = $this->html_next; $pager->var_page = 'page'; $html_block = ''. ''. ''. ''. ''. ''. ''. '%s
'.__('Title').''.__('Date').''.__('Author').''.__('Comments').''.__('Trackbacks').''.__('Status').'
'; if ($enclose_block) { $html_block = sprintf($enclose_block,$html_block); } echo '

'.__('Page(s)').' : '.$pager->getLinks().'

'; $blocks = explode('%s',$html_block); echo $blocks[0]; $count = 0; while ($this->rs->fetch()) { echo $this->postLine($count); $count ++; } echo $blocks[1]; echo '

'.__('Page(s)').' : '.$pager->getLinks().'

'; } } private function postLine($count) { $img = '%1$s'; switch ($this->rs->post_status) { case 1: $img_status = sprintf($img,__('Published'),'check-on.png'); break; case 0: $img_status = sprintf($img,__('Unpublished'),'check-off.png'); break; case -1: $img_status = sprintf($img,__('Scheduled'),'scheduled.png'); break; case -2: $img_status = sprintf($img,__('Pending'),'check-wrn.png'); break; } $protected = ''; if ($this->rs->post_password) { $protected = sprintf($img,__('Protected'),'locker.png'); } $selected = ''; if ($this->rs->post_selected) { $selected = sprintf($img,__('Hidden'),'hidden.png'); } $attach = ''; $nb_media = $this->rs->countMedia(); if ($nb_media > 0) { $attach_str = $nb_media == 1 ? __('%d attachment') : __('%d attachments'); $attach = sprintf($img,sprintf($attach_str,$nb_media),'attach.png'); } $res = ''; $res .= ''.form::field(array('order['.$this->rs->post_id.']'),2,3,$count+1,'position','',false,'title="'.sprintf(__('position of %s'),html::escapeHTML($this->rs->post_title)).'"').''. ''. form::checkbox(array('entries[]'),$this->rs->post_id,'','','',!$this->rs->isEditable(),'title="'.__('Select this page').'"').''. ''. html::escapeHTML($this->rs->post_title).''. ''.dt::dt2str(__('%Y-%m-%d %H:%M'),$this->rs->post_dt).''. ''.$this->rs->user_id.''. ''.$this->rs->nb_comment.''. ''.$this->rs->nb_trackback.''. ''.$img_status.' '.$selected.' '.$protected.' '.$attach.''. ''; return $res; } } /* Getting pages -------------------------------------------------------- */ $params = array( 'post_type' => 'page' ); $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1; $nb_per_page = 30; if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) { $nb_per_page = (integer) $_GET['nb']; } $params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page); $params['no_content'] = true; $params['order'] = 'post_position ASC, post_title ASC'; try { $pages = $core->blog->getPosts($params); $counter = $core->blog->getPosts($params,true); $post_list = new adminPageList($core,$pages,$counter->f(0)); } catch (Exception $e) { $core->error->add($e->getMessage()); } class dcPagesActionsPage extends dcPostsActionsPage { public function __construct($core,$uri,$redirect_args=array()) { parent::__construct($core,$uri,$redirect_args); $this->redirect_fields = array(); } public function beginPage($breadcrumb='',$header='') { echo ''.__('Pages').''. dcPage::jsLoad('index.php?pf=pages/list.js'). # --BEHAVIOR-- adminBeforePostDelete $core->callBehavior('adminPagesActionsHeaders'). ''; } public function endPage() { echo ''; } public function loadDefaults() { parent::loadDefaults(); unset ($this->combos[__('Mark')]); unset ($this->actions['selected']); unset ($this->actions['unselected']); $this->actions['reorder']=array('dcPagesActionsPage','doReorderPages'); } public function process() { // fake action for pages reordering if (!empty($this->from['reorder'])) { $this->from['action']='reorder'; } parent::process(); } public static function doReorderPages($core, dcPostsActionsPage $ap, $post) { foreach($post['order'] as $post_id => $value) { if (!$core->auth->check('publish,contentadmin',$core->blog->id)) throw new Exception(__('You are not allowed to change this entry status')); $strReq = "WHERE blog_id = '".$core->con->escape($core->blog->id)."' ". "AND post_id ".$core->con->in($post_id); #If user can only publish, we need to check the post's owner if (!$core->auth->check('contentadmin',$core->blog->id)) $strReq .= "AND user_id = '".$core->con->escape($core->auth->userID())."' "; $cur = $core->con->openCursor($core->prefix.'post'); $cur->post_position = (integer) $value-1; $cur->post_upddt = date('Y-m-d H:i:s'); $cur->update($strReq); $core->blog->triggerBlog(); } $ap->redirect(array('reo'=>1),false); } } # Actions combo box $pages_actions_page = new dcPagesActionsPage($core,'plugin.php',array('p'=>'pages')); $pages_actions_page->process(); # --BEHAVIOR-- adminPagesActionsCombo $core->callBehavior('adminPagesActionsCombo',array(&$combo_action)); /* Display -------------------------------------------------------- */ ?> <?php echo __('Pages'); ?> blog->name) => '', ''.__('Pages').'' => '' )); if (!empty($_GET['upd'])) { dcPage::success(__('Selected pages have been successfully updated.')); } elseif (!empty($_GET['del'])) { dcPage::success(__('Selected pages have been successfully deleted.')); } elseif (!empty($_GET['reo'])) { dcPage::success(__('Selected pages have been successfully reordered.')); } echo '

'.__('New page').'

'; if (!$core->error->flag()) { # Show pages $post_list->display($page,$nb_per_page, '
'. '%s'. '
'. '

'. '

'. form::combo('action',$pages_actions_page->getCombo()). '

'. form::hidden(array('post_type'),'page'). form::hidden(array('p'),'pages'). '
'. $core->formNonce(). '
'. ''. '
'); } dcPage::helpBlock('pages'); ?>