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 AddPage class.
  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  Tyler Colbert <tyler@colberts.us>
 11:  * @package Wicked
 12:  */
 13: class Wicked_Page_AddPage extends Wicked_Page {
 14: 
 15:     /**
 16:      * Display modes supported by this page.
 17:      *
 18:      * @var array
 19:      */
 20:     public $supportedModes = array(
 21:         Wicked::MODE_DISPLAY => true);
 22: 
 23:     /**
 24:      * The page to confirm creation of.
 25:      *
 26:      * @var string
 27:      */
 28:     protected $_newpage;
 29: 
 30:     /**
 31:      * Cached search results.
 32:      *
 33:      * @var array
 34:      */
 35:     protected $_results;
 36: 
 37:     public function __construct($newpage)
 38:     {
 39:         $this->_newpage = $newpage;
 40:         $this->_results = $GLOBALS['wicked']->searchTitles($newpage);
 41:     }
 42: 
 43:     /**
 44:      * Bail out if there's no page name.
 45:      */
 46:     public function preDisplay()
 47:     {
 48:         if (!strlen($this->referrer())) {
 49:             $GLOBALS['notification']->push(_("Page name must not be empty"));
 50:             Wicked::url('', true)->redirect();
 51:         }
 52:     }
 53: 
 54:     /**
 55:      * Renders this page in display mode.
 56:      *
 57:      * @throws Wicked_Exception
 58:      */
 59:     public function display()
 60:     {
 61:         try {
 62:             $templates = $GLOBALS['wicked']->getMatchingPages('Template', Wicked_Page::MATCH_ENDS);
 63:         } catch (Wicked_Exception $e) {
 64:             $GLOBALS['notification']->push(sprintf(_("Error retrieving templates: %s"),
 65:                                                    $e->getMessage()), 'horde.error');
 66:             throw $e;
 67:         }
 68: 
 69:         $search_results = null;
 70:         if ($this->_results) {
 71:             $template = $GLOBALS['injector']->createInstance('Horde_Template');
 72:             $pages = array();
 73:             foreach ($this->_results as $page) {
 74:                 if (!empty($page['page_history'])) {
 75:                     $page = new Wicked_Page_StandardHistoryPage($page);
 76:                 } else {
 77:                     $page = new Wicked_Page_StandardPage($page);
 78:                 }
 79: 
 80:                 $pages[] = array('author' => $page->author(),
 81:                                  'created' => $page->formatVersionCreated(),
 82:                                  'name' => $page->pageName(),
 83:                                  'context' => false,
 84:                                  'url' => $page->pageUrl(),
 85:                                  'version' => $page->version());
 86:             }
 87:             $template->set('pages', $pages, true);
 88:             $template->set('hits', false, true);
 89:             $search_results = $template->fetch(WICKED_TEMPLATES . '/pagelist/pagelist.html');
 90:         }
 91: 
 92:         require WICKED_TEMPLATES . '/edit/create.inc';
 93:     }
 94: 
 95:     public function pageName()
 96:     {
 97:         return 'AddPage';
 98:     }
 99: 
100:     public function pageTitle()
101:     {
102:         return sprintf(_("Add Page: %s"), $this->referrer());
103:     }
104: 
105:     public function referrer()
106:     {
107:         return $this->_newpage;
108:     }
109: 
110:     /**
111:      *
112:      *
113:      * @return string
114:      */
115:     public function getText()
116:     {
117:         // New page, no text to return
118:         return '';
119:     }
120: 
121: }
122: 
API documentation generated by ApiGen