redirect_fields = array(); $this->caller_title = __('Pages'); } public function error(Exception $e) { $this->core->error->add($e->getMessage()); $this->beginPage(dcPage::breadcrumb( array( html::escapeHTML($this->core->blog->name) => '', __('Pages') => $this->getRedirection(true), __('Pages actions') => '' )) ); $this->endPage(); } public function beginPage($breadcrumb = '', $head = '') { echo '' . __('Pages') . '' . dcPage::jsLoad('js/_posts_actions.js') . $head . '' . $breadcrumb; echo '

' . __('Back to pages list') . '

'; } public function endPage() { echo ''; } public function loadDefaults() { DefaultPagesActions::adminPagesActionsPage($this->core, $this); $this->actions['reorder'] = array('dcPagesActionsPage', 'doReorderPages'); $this->core->callBehavior('adminPagesActionsPage', $this->core, $this); } public function process() { // fake action for pages reordering if (!empty($this->from['reorder'])) { $this->from['action'] = 'reorder'; } $this->from['post_type'] = 'page'; return 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(); } dcPage::addSuccessNotice(__('Selected pages have been successfully reordered.')); $ap->redirect(false); } } class DefaultPagesActions { public static function adminPagesActionsPage($core, $ap) { if ($core->auth->check('publish,contentadmin', $core->blog->id)) { $ap->addAction( array(__('Status') => array( __('Publish') => 'publish', __('Unpublish') => 'unpublish', __('Schedule') => 'schedule', __('Mark as pending') => 'pending' )), array('dcDefaultPostActions', 'doChangePostStatus') ); } if ($core->auth->check('admin', $core->blog->id)) { $ap->addAction( array(__('Change') => array( __('Change author') => 'author')), array('dcDefaultPostActions', 'doChangePostAuthor') ); } if ($core->auth->check('delete,contentadmin', $core->blog->id)) { $ap->addAction( array(__('Delete') => array( __('Delete') => 'delete')), array('dcDefaultPostActions', 'doDeletePost') ); } } }