Example #1
0
 /**
  * Set Group Home Page
  *
  * @return 	void
  */
 public function setHomeTask()
 {
     // get request vars
     $pageid = Request::getInt('pageid', 0, 'get');
     // load page model
     $page = new Page($pageid);
     // make sure its out page
     if (!$page->belongsToGroup($this->group)) {
         App::abort(403, Lang::txt('COM_GROUPS_PAGES_PAGE_NOT_AUTH'));
     }
     // make sure we have an approved version
     $version = $page->approvedVersion();
     if ($version === null) {
         $this->setNotification(Lang::txt('COM_GROUPS_PAGES_PAGE_HOME_ERROR', $page->get('title')), 'error');
         App::redirect(Route::url('index.php?option=' . $this->_option . '&cn=' . $this->group->get('cn') . '&controller=pages'));
         return;
     }
     // remove any current home page
     $pageArchive = Page\Archive::getInstance();
     $pageArchive->reset('home', 0, array('gidNumber' => $this->group->get('gidNumber')));
     // toggle home state
     $home = 1;
     if ($page->get('home') == 1) {
         $home = 0;
     }
     $page->set('home', $home);
     // store new group home page
     if (!$page->store()) {
         $this->setNotification($page->getError(), 'error');
         return $this->displayTask();
     }
     // inform user
     $this->setNotification(Lang::txt('COM_GROUPS_PAGES_PAGE_HOME_SET', $page->get('title')), 'passed');
     // redirect
     App::redirect(Route::url('index.php?option=' . $this->_option . '&cn=' . $this->group->get('cn') . '&controller=pages'));
     if ($return = Request::getVar('return', '', 'get')) {
         App::redirect(base64_decode($return));
     }
 }