/** * 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)); } }