[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Implements Special:Unwatchedpages 4 * 5 * Copyright © 2005 Ævar Arnfjörð Bjarmason 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License along 18 * with this program; if not, write to the Free Software Foundation, Inc., 19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 20 * http://www.gnu.org/copyleft/gpl.html 21 * 22 * @file 23 * @ingroup SpecialPage 24 * @author Ævar Arnfjörð Bjarmason <[email protected]> 25 */ 26 27 /** 28 * A special page that displays a list of pages that are not on anyones watchlist. 29 * 30 * @ingroup SpecialPage 31 */ 32 class UnwatchedpagesPage extends QueryPage { 33 34 function __construct( $name = 'Unwatchedpages' ) { 35 parent::__construct( $name, 'unwatchedpages' ); 36 } 37 38 function isExpensive() { 39 return true; 40 } 41 42 function isSyndicated() { 43 return false; 44 } 45 46 function getQueryInfo() { 47 return array( 48 'tables' => array( 'page', 'watchlist' ), 49 'fields' => array( 50 'namespace' => 'page_namespace', 51 'title' => 'page_title', 52 'value' => 'page_namespace' 53 ), 54 'conds' => array( 55 'wl_title IS NULL', 56 'page_is_redirect' => 0, 57 "page_namespace != '" . NS_MEDIAWIKI . "'" 58 ), 59 'join_conds' => array( 'watchlist' => array( 60 'LEFT JOIN', array( 'wl_title = page_title', 61 'wl_namespace = page_namespace' ) ) ) 62 ); 63 } 64 65 function sortDescending() { 66 return false; 67 } 68 69 function getOrderFields() { 70 return array( 'page_namespace', 'page_title' ); 71 } 72 73 /** 74 * Add the JS 75 * @param string|null $par 76 */ 77 public function execute( $par ) { 78 parent::execute( $par ); 79 $this->getOutput()->addModules( 'mediawiki.special.unwatchedPages' ); 80 } 81 82 /** 83 * @param Skin $skin 84 * @param object $result Result row 85 * @return string 86 */ 87 function formatResult( $skin, $result ) { 88 global $wgContLang; 89 90 $nt = Title::makeTitleSafe( $result->namespace, $result->title ); 91 if ( !$nt ) { 92 return Html::element( 'span', array( 'class' => 'mw-invalidtitle' ), 93 Linker::getInvalidTitleDescription( $this->getContext(), $result->namespace, $result->title ) ); 94 } 95 96 $text = $wgContLang->convert( $nt->getPrefixedText() ); 97 98 $plink = Linker::linkKnown( $nt, htmlspecialchars( $text ) ); 99 $token = WatchAction::getWatchToken( $nt, $this->getUser() ); 100 $wlink = Linker::linkKnown( 101 $nt, 102 $this->msg( 'watch' )->escaped(), 103 array( 'class' => 'mw-watch-link' ), 104 array( 'action' => 'watch', 'token' => $token ) 105 ); 106 107 return $this->getLanguage()->specialList( $plink, $wlink ); 108 } 109 110 protected function getGroupName() { 111 return 'maintenance'; 112 } 113 }
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 |