MediaWiki REL1_32
SpecialUnwatchedpages.php
Go to the documentation of this file.
1<?php
30
37
38 function __construct( $name = 'Unwatchedpages' ) {
39 parent::__construct( $name, 'unwatchedpages' );
40 }
41
42 public function isExpensive() {
43 return true;
44 }
45
46 function isSyndicated() {
47 return false;
48 }
49
56 public function preprocessResults( $db, $res ) {
57 if ( !$res->numRows() ) {
58 return;
59 }
60
61 $batch = new LinkBatch();
62 foreach ( $res as $row ) {
63 $batch->add( $row->namespace, $row->title );
64 }
65 $batch->execute();
66
67 $res->seek( 0 );
68 }
69
70 public function getQueryInfo() {
72 return [
73 'tables' => [ 'page', 'watchlist' ],
74 'fields' => [
75 'namespace' => 'page_namespace',
76 'title' => 'page_title',
77 'value' => 'page_namespace'
78 ],
79 'conds' => [
80 'wl_title IS NULL',
81 'page_is_redirect' => 0,
82 'page_namespace != ' . $dbr->addQuotes( NS_MEDIAWIKI ),
83 ],
84 'join_conds' => [ 'watchlist' => [
85 'LEFT JOIN', [ 'wl_title = page_title',
86 'wl_namespace = page_namespace' ] ] ]
87 ];
88 }
89
90 function sortDescending() {
91 return false;
92 }
93
94 function getOrderFields() {
95 return [ 'page_namespace', 'page_title' ];
96 }
97
102 public function execute( $par ) {
103 parent::execute( $par );
104 $this->getOutput()->addModules( 'mediawiki.special.unwatchedPages' );
105 }
106
112 function formatResult( $skin, $result ) {
113 $nt = Title::makeTitleSafe( $result->namespace, $result->title );
114 if ( !$nt ) {
115 return Html::element( 'span', [ 'class' => 'mw-invalidtitle' ],
116 Linker::getInvalidTitleDescription( $this->getContext(), $result->namespace, $result->title ) );
117 }
118
119 $text = MediaWikiServices::getInstance()->getContentLanguage()->
120 convert( htmlspecialchars( $nt->getPrefixedText() ) );
121
123
124 $plink = $linkRenderer->makeKnownLink( $nt, new HtmlArmor( $text ) );
125 $wlink = $linkRenderer->makeKnownLink(
126 $nt,
127 $this->msg( 'watch' )->text(),
128 [ 'class' => 'mw-watch-link' ],
129 [ 'action' => 'watch' ]
130 );
131
132 return $this->getLanguage()->specialList( $plink, $wlink );
133 }
134
135 protected function getGroupName() {
136 return 'maintenance';
137 }
138}
This list may contain false positives That usually means there is additional text with links below the first Each row contains links to the first and second as well as the first line of the second redirect text
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
Marks HTML that shouldn't be escaped.
Definition HtmlArmor.php:28
Class representing a list of titles The execute() method checks them all for existence and adds them ...
Definition LinkBatch.php:34
static getInvalidTitleDescription(IContextSource $context, $namespace, $title)
Get a message saying that an invalid title was encountered.
Definition Linker.php:186
MediaWikiServices is the service locator for the application scope of MediaWiki.
This is a class for doing query pages; since they're almost all the same, we factor out some of the f...
Definition QueryPage.php:35
getOutput()
Get the OutputPage being used for this instance.
getContext()
Gets the context this SpecialPage is executed in.
msg( $key)
Wrapper around wfMessage that sets the current context.
getLanguage()
Shortcut to get user's language.
MediaWiki Linker LinkRenderer null $linkRenderer
A special page that displays a list of pages that are not on anyones watchlist.
isSyndicated()
Sometime we don't want to build rss / atom feeds.
preprocessResults( $db, $res)
Pre-cache page existence to speed up link generation.
__construct( $name='Unwatchedpages')
getGroupName()
Under which header this special page is listed in Special:SpecialPages See messages 'specialpages-gro...
sortDescending()
Override to sort by increasing values.
formatResult( $skin, $result)
getQueryInfo()
Subclasses return an SQL query here, formatted as an array with the following keys: tables => Table(s...
getOrderFields()
Subclasses return an array of fields to order by here.
isExpensive()
Is this query expensive (for some definition of expensive)? Then we don't let it run in miser mode.
$res
Definition database.txt:21
Basic database interface for live and lazy-loaded relation database handles.
Definition IDatabase.php:38
Result wrapper for grabbing data queried from an IDatabase object.
$batch
Definition linkcache.txt:23
const DB_REPLICA
Definition defines.php:25