public static getPage ( $pagename, $pagever = null, $referrer = null ) : Wicked_Page | ||
리턴 | Wicked_Page | The requested page. |
public static function getPage($pagename, $pagever = null, $referrer = null)
{
global $conf, $notification, $wicked;
if (empty($pagename)) {
$pagename = 'Wiki/Home';
}
$classname = 'Wicked_Page_' . $pagename;
if ($pagename == basename($pagename) && class_exists($classname)) {
return new $classname($referrer);
}
/* If we have a version, but it is actually the most recent version,
* ignore it. */
if (!empty($pagever)) {
$page = new Wicked_Page_StandardPage($pagename, false, null);
if ($page->isValid() && $page->version() == $pagever) {
return $page;
}
return new Wicked_Page_StandardHistoryPage($pagename, $pagever);
}
$page = new Wicked_Page_StandardPage($pagename);
if ($page->isValid() || !$page->allows(Wicked::MODE_EDIT)) {
return $page;
}
return new Wicked_Page_AddPage($pagename);
}
public function handleAction() { global $notification; $page = Wicked_Page::getPage($this->referrer()); if ($page->allows(Wicked::MODE_EDIT)) { $version = Horde_Util::getPost('version'); if (empty($version)) { $notification->push(sprintf(_("Can't revert to an unknown version.")), 'horde.error'); Wicked::url($this->referrer(), true)->redirect(); } $oldpage = Wicked_Page::getPage($this->referrer(), $version); $page->updateText($oldpage->getText(), 'Revert'); $notification->push(sprintf(_("Reverted to version %s of \"%s\"."), $version, $page->pageName())); Wicked::url($page->pageName(), true)->redirect(); } $notification->push(sprintf(_("You don't have permission to edit \"%s\"."), $page->pageName()), 'horde.warning'); Wicked::url($this->referrer(), true)->redirect(); }