[ Index ]

PHP Cross Reference of MediaWiki-1.24.0

title

Body

[close]

/includes/content/ -> WikitextContentHandler.php (source)

   1  <?php
   2  /**
   3   * Content handler for wiki text pages.
   4   *
   5   * This program is free software; you can redistribute it and/or modify
   6   * it under the terms of the GNU General Public License as published by
   7   * the Free Software Foundation; either version 2 of the License, or
   8   * (at your option) any later version.
   9   *
  10   * This program is distributed in the hope that it will be useful,
  11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13   * GNU General Public License for more details.
  14   *
  15   * You should have received a copy of the GNU General Public License along
  16   * with this program; if not, write to the Free Software Foundation, Inc.,
  17   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18   * http://www.gnu.org/copyleft/gpl.html
  19   *
  20   * @since 1.21
  21   *
  22   * @file
  23   * @ingroup Content
  24   */
  25  
  26  /**
  27   * Content handler for wiki text pages.
  28   *
  29   * @ingroup Content
  30   */
  31  class WikitextContentHandler extends TextContentHandler {
  32  
  33  	public function __construct( $modelId = CONTENT_MODEL_WIKITEXT ) {
  34          parent::__construct( $modelId, array( CONTENT_FORMAT_WIKITEXT ) );
  35      }
  36  
  37  	protected function getContentClass() {
  38          return 'WikitextContent';
  39      }
  40  
  41      /**
  42       * Returns a WikitextContent object representing a redirect to the given destination page.
  43       *
  44       * @param Title $destination The page to redirect to.
  45       * @param string $text Text to include in the redirect, if possible.
  46       *
  47       * @return Content
  48       *
  49       * @see ContentHandler::makeRedirectContent
  50       */
  51  	public function makeRedirectContent( Title $destination, $text = '' ) {
  52          $optionalColon = '';
  53  
  54          if ( $destination->getNamespace() == NS_CATEGORY ) {
  55              $optionalColon = ':';
  56          } else {
  57              $iw = $destination->getInterwiki();
  58              if ( $iw && Language::fetchLanguageName( $iw, null, 'mw' ) ) {
  59                  $optionalColon = ':';
  60              }
  61          }
  62  
  63          $mwRedir = MagicWord::get( 'redirect' );
  64          $redirectText = $mwRedir->getSynonym( 0 ) .
  65              ' [[' . $optionalColon . $destination->getFullText() . ']]';
  66  
  67          if ( $text != '' ) {
  68              $redirectText .= "\n" . $text;
  69          }
  70  
  71          $class = $this->getContentClass();
  72          return new $class( $redirectText );
  73      }
  74  
  75      /**
  76       * Returns true because wikitext supports redirects.
  77       *
  78       * @return bool Always true.
  79       *
  80       * @see ContentHandler::supportsRedirects
  81       */
  82  	public function supportsRedirects() {
  83          return true;
  84      }
  85  
  86      /**
  87       * Returns true because wikitext supports sections.
  88       *
  89       * @return bool Always true.
  90       *
  91       * @see ContentHandler::supportsSections
  92       */
  93  	public function supportsSections() {
  94          return true;
  95      }
  96  
  97      /**
  98       * Returns true, because wikitext supports caching using the
  99       * ParserCache mechanism.
 100       *
 101       * @since 1.21
 102       *
 103       * @return bool Always true.
 104       *
 105       * @see ContentHandler::isParserCacheSupported
 106       */
 107  	public function isParserCacheSupported() {
 108          return true;
 109      }
 110  
 111  }


Generated: Fri Nov 28 14:03:12 2014 Cross-referenced by PHPXref 0.7.1