Overview

Packages

  • None
  • Wicked

Classes

  • Text_Wiki_Parse_Heading2
  • Text_Wiki_Parse_Toc2
  • Text_Wiki_Render_Latex_Heading2
  • Text_Wiki_Render_Latex_Toc2
  • Text_Wiki_Render_Plain_Heading2
  • Text_Wiki_Render_Plain_Toc2
  • Text_Wiki_Render_Rst
  • Text_Wiki_Render_Rst_Blockquote
  • Text_Wiki_Render_Rst_Bold
  • Text_Wiki_Render_Rst_Code
  • Text_Wiki_Render_Rst_Deflist
  • Text_Wiki_Render_Rst_Emphasis
  • Text_Wiki_Render_Rst_Freelink
  • Text_Wiki_Render_Rst_Heading2
  • Text_Wiki_Render_Rst_Links
  • Text_Wiki_Render_Rst_List
  • Text_Wiki_Render_Rst_Newline
  • Text_Wiki_Render_Rst_Paragraph
  • Text_Wiki_Render_Rst_Raw
  • Text_Wiki_Render_Rst_Toc2
  • Text_Wiki_Render_Rst_Tt
  • Text_Wiki_Render_Rst_Url
  • Text_Wiki_Render_Xhtml_Attribute
  • Text_Wiki_Render_Xhtml_Code2
  • Text_Wiki_Render_Xhtml_Freelink2
  • Text_Wiki_Render_Xhtml_Heading2
  • Text_Wiki_Render_Xhtml_Image2
  • Text_Wiki_Render_Xhtml_Interwiki
  • Text_Wiki_Render_Xhtml_Registrylink
  • Text_Wiki_Render_Xhtml_Toc2
  • Text_Wiki_Render_Xhtml_Url
  • Text_Wiki_Render_Xhtml_Wickedblock
  • Text_Wiki_Render_Xhtml_Wikilink2
  • Wicked
  • Wicked_Api
  • Wicked_Driver
  • Wicked_Driver_Sql
  • Wicked_Exception
  • Wicked_Factory_Driver
  • Wicked_Page
  • Wicked_Page_AddPage
  • Wicked_Page_AllPages
  • Wicked_Page_AttachedFiles
  • Wicked_Page_BackLinks
  • Wicked_Page_DeletePage
  • Wicked_Page_EditPage
  • Wicked_Page_LeastPopular
  • Wicked_Page_LikePages
  • Wicked_Page_MergeOrRename
  • Wicked_Page_MostPopular
  • Wicked_Page_NewPage
  • Wicked_Page_RecentChanges
  • Wicked_Page_RevertPage
  • Wicked_Page_Search
  • Wicked_Page_StandardHistoryPage
  • Wicked_Page_StandardPage
  • Wicked_Page_SyncDiff
  • Wicked_Page_SyncPages
  • Wicked_Sync
  • Wicked_Sync_Wicked
  • Wicked_Test
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Wicked RevertPage class (for confirming reversions).
  4:  *
  5:  * Copyright 2003-2012 Horde LLC (http://www.horde.org/)
  6:  *
  7:  * See the enclosed file COPYING for license information (GPL). If you
  8:  * did not receive this file, see http://www.horde.org/licenses/gpl.
  9:  *
 10:  * @author  Chuck Hagenbuch <chuck@horde.org>
 11:  * @package Wicked
 12:  */
 13: class Wicked_Page_RevertPage extends Wicked_Page {
 14: 
 15:     /**
 16:      * Display modes supported by this page.
 17:      *
 18:      * @var array
 19:      */
 20:     public $supportedModes = array(Wicked::MODE_DISPLAY => true);
 21: 
 22:     /**
 23:      * The page that we're confirming reversion for.
 24:      *
 25:      * @var string
 26:      */
 27:     protected $_referrer = null;
 28: 
 29:     public function __construct($referrer)
 30:     {
 31:         $this->_referrer = $referrer;
 32:     }
 33: 
 34:     /**
 35:      * Retrieve this user's permissions for the referring page.
 36:      *
 37:      * @return integer  The permissions bitmask.
 38:      */
 39:     public function getPermissions()
 40:     {
 41:         return parent::getPermissions($this->referrer());
 42:     }
 43: 
 44:     /**
 45:      * Send them back whence they came if they aren't allowed to
 46:      * edit this page.
 47:      */
 48:     public function preDisplay()
 49:     {
 50:         $page = Wicked_Page::getPage($this->referrer());
 51:         if (!$page->allows(Wicked::MODE_EDIT)) {
 52:             Wicked::url($this->referrer(), true)->redirect();
 53:         }
 54:     }
 55: 
 56:     /**
 57:      * Renders this page in display mode.
 58:      *
 59:      * @throws Wicked_Exception
 60:      */
 61:     public function display()
 62:     {
 63:         $version = Horde_Util::getFormData('version');
 64:         $page = Wicked_Page::getPage($this->referrer(), $version);
 65:         $msg = sprintf(_("Are you sure you want to revert to version %s of this page?"), $version);
 66: ?>
 67: <form method="post" name="revertform" action="<?php echo Wicked::url('RevertPage') ?>">
 68: <?php Horde_Util::pformInput() ?>
 69: <input type="hidden" name="page" value="RevertPage" />
 70: <input type="hidden" name="actionID" value="special" />
 71: <input type="hidden" name="version" value="<?php echo htmlspecialchars($version) ?>" />
 72: <input type="hidden" name="referrer" value="<?php echo htmlspecialchars($page->pageName()) ?>" />
 73: 
 74: <h1 class="header">
 75:  <?php echo _("Revert Page") . ': ' . Horde::link($page->pageUrl(), $page->pageName()) . $page->pageName() . '</a>'; if ($page->isLocked()) echo Horde::img('locked.png', _("Locked")) ?>
 76: </h1>
 77: 
 78: <div class="headerbox" style="padding:4px">
 79:  <p><?php echo $msg ?></p>
 80:  <p>
 81:   <input type="submit" value="<?php echo _("Revert") ?>" class="button" />
 82:   <a class="button" href="<?php echo Wicked::url($page->pageName()) ?>"><?php echo _("Cancel") ?></a>
 83:  </p>
 84: </div>
 85: 
 86: </form>
 87: <?php
 88:     }
 89: 
 90:     public function pageName()
 91:     {
 92:         return 'RevertPage';
 93:     }
 94: 
 95:     public function pageTitle()
 96:     {
 97:         return _("Revert Page");
 98:     }
 99: 
100:     public function referrer()
101:     {
102:         return $this->_referrer;
103:     }
104: 
105:     public function handleAction()
106:     {
107:         global $notification;
108: 
109:         $page = Wicked_Page::getPage($this->referrer());
110:         if ($page->allows(Wicked::MODE_EDIT)) {
111:             $version = Horde_Util::getPost('version');
112:             if (empty($version)) {
113:                 $notification->push(sprintf(_("Can't revert to an unknown version.")), 'horde.error');
114:                 Wicked::url($this->referrer(), true)->redirect();
115:             }
116:             $oldpage = Wicked_Page::getPage($this->referrer(), $version);
117:             $page->updateText($oldpage->getText(), 'Revert');
118:             $notification->push(sprintf(_("Reverted to version %s of \"%s\"."), $version, $page->pageName()));
119:             Wicked::url($page->pageName(), true)->redirect();
120:         }
121: 
122:         $notification->push(sprintf(_("You don't have permission to edit \"%s\"."), $page->pageName()), 'horde.warning');
123:         Wicked::url($this->referrer(), true)->redirect();
124:     }
125: 
126: }
127: 
API documentation generated by ApiGen