[ Index ]

PHP Cross Reference of MediaWiki-1.24.0

title

Body

[close]

/includes/specialpage/ -> PageQueryPage.php (source)

   1  <?php
   2  /**
   3   * Variant of QueryPage which formats the result as a simple link to the page.
   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   * @file
  21   * @ingroup SpecialPage
  22   */
  23  
  24  /**
  25   * Variant of QueryPage which formats the result as a simple link to the page
  26   *
  27   * @ingroup SpecialPage
  28   */
  29  abstract class PageQueryPage extends QueryPage {
  30      /**
  31       * Run a LinkBatch to pre-cache LinkCache information,
  32       * like page existence and information for stub color and redirect hints.
  33       * This should be done for live data and cached data.
  34       *
  35       * @param DatabaseBase $db
  36       * @param ResultWrapper $res
  37       */
  38  	public function preprocessResults( $db, $res ) {
  39          if ( !$res->numRows() ) {
  40              return;
  41          }
  42  
  43          $batch = new LinkBatch();
  44          foreach ( $res as $row ) {
  45              $batch->add( $row->namespace, $row->title );
  46          }
  47          $batch->execute();
  48  
  49          $res->seek( 0 );
  50      }
  51  
  52      /**
  53       * Format the result as a simple link to the page
  54       *
  55       * @param Skin $skin
  56       * @param object $row Result row
  57       * @return string
  58       */
  59  	public function formatResult( $skin, $row ) {
  60          global $wgContLang;
  61  
  62          $title = Title::makeTitleSafe( $row->namespace, $row->title );
  63  
  64          if ( $title instanceof Title ) {
  65              $text = $wgContLang->convert( $title->getPrefixedText() );
  66              return Linker::link( $title, htmlspecialchars( $text ) );
  67          } else {
  68              return Html::element( 'span', array( 'class' => 'mw-invalidtitle' ),
  69                  Linker::getInvalidTitleDescription( $this->getContext(), $row->namespace, $row->title ) );
  70          }
  71      }
  72  }


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