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(); }