[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Implements Special:Shortpages 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 * SpecialShortpages extends QueryPage. It is used to return the shortest 26 * pages in the database. 27 * 28 * @ingroup SpecialPage 29 */ 30 class ShortPagesPage extends QueryPage { 31 32 function __construct( $name = 'Shortpages' ) { 33 parent::__construct( $name ); 34 } 35 36 function isSyndicated() { 37 return false; 38 } 39 40 function getQueryInfo() { 41 return array( 42 'tables' => array( 'page' ), 43 'fields' => array( 44 'namespace' => 'page_namespace', 45 'title' => 'page_title', 46 'value' => 'page_len' 47 ), 48 'conds' => array( 49 'page_namespace' => MWNamespace::getContentNamespaces(), 50 'page_is_redirect' => 0 51 ), 52 'options' => array( 'USE INDEX' => 'page_redirect_namespace_len' ) 53 ); 54 } 55 56 function getOrderFields() { 57 return array( 'page_len' ); 58 } 59 60 /** 61 * @param DatabaseBase $db 62 * @param ResultWrapper $res 63 */ 64 function preprocessResults( $db, $res ) { 65 # There's no point doing a batch check if we aren't caching results; 66 # the page must exist for it to have been pulled out of the table 67 if ( !$this->isCached() || !$res->numRows() ) { 68 return; 69 } 70 71 $batch = new LinkBatch(); 72 foreach ( $res as $row ) { 73 $batch->add( $row->namespace, $row->title ); 74 } 75 $batch->execute(); 76 77 $res->seek( 0 ); 78 } 79 80 function sortDescending() { 81 return false; 82 } 83 84 /** 85 * @param Skin $skin 86 * @param object $result Result row 87 * @return string 88 */ 89 function formatResult( $skin, $result ) { 90 $dm = $this->getLanguage()->getDirMark(); 91 92 $title = Title::makeTitleSafe( $result->namespace, $result->title ); 93 if ( !$title ) { 94 return Html::element( 'span', array( 'class' => 'mw-invalidtitle' ), 95 Linker::getInvalidTitleDescription( $this->getContext(), $result->namespace, $result->title ) ); 96 } 97 98 $hlink = Linker::linkKnown( 99 $title, 100 $this->msg( 'hist' )->escaped(), 101 array(), 102 array( 'action' => 'history' ) 103 ); 104 $hlinkInParentheses = $this->msg( 'parentheses' )->rawParams( $hlink )->escaped(); 105 106 if ( $this->isCached() ) { 107 $plink = Linker::link( $title ); 108 $exists = $title->exists(); 109 } else { 110 $plink = Linker::linkKnown( $title ); 111 $exists = true; 112 } 113 114 $size = $this->msg( 'nbytes' )->numParams( $result->value )->escaped(); 115 116 return $exists 117 ? "$hlinkInParentheses} {$dm}{$plink} {$dm}[{$size}]" 118 : "<del>$hlinkInParentheses} {$dm}{$plink} {$dm}[{$size}]</del>"; 119 } 120 121 protected function getGroupName() { 122 return 'maintenance'; 123 } 124 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |