00001 <?php 00016 class UnwatchedpagesPage extends QueryPage { 00017 00018 function getName() { return 'Unwatchedpages'; } 00019 function isExpensive() { return true; } 00020 function isSyndicated() { return false; } 00021 00022 function getSQL() { 00023 $dbr = wfGetDB( DB_SLAVE ); 00024 list( $page, $watchlist ) = $dbr->tableNamesN( 'page', 'watchlist' ); 00025 $mwns = NS_MEDIAWIKI; 00026 return 00027 " 00028 SELECT 00029 'Unwatchedpages' as type, 00030 page_namespace as namespace, 00031 page_title as title, 00032 page_namespace as value 00033 FROM $page 00034 LEFT JOIN $watchlist ON wl_namespace = page_namespace AND page_title = wl_title 00035 WHERE wl_title IS NULL AND page_is_redirect = 0 AND page_namespace<>$mwns 00036 "; 00037 } 00038 00039 function sortDescending() { return false; } 00040 00041 function formatResult( $skin, $result ) { 00042 global $wgContLang; 00043 00044 $nt = Title::makeTitle( $result->namespace, $result->title ); 00045 $text = $wgContLang->convert( $nt->getPrefixedText() ); 00046 00047 $plink = $skin->makeKnownLinkObj( $nt, htmlspecialchars( $text ) ); 00048 $wlink = $skin->makeKnownLinkObj( $nt, wfMsgHtml( 'watch' ), 'action=watch' ); 00049 00050 return wfSpecialList( $plink, $wlink ); 00051 } 00052 } 00053 00057 function wfSpecialUnwatchedpages() { 00058 global $wgUser, $wgOut; 00059 00060 if ( ! $wgUser->isAllowed( 'unwatchedpages' ) ) 00061 return $wgOut->permissionRequired( 'unwatchedpages' ); 00062 00063 list( $limit, $offset ) = wfCheckLimits(); 00064 00065 $wpp = new UnwatchedpagesPage(); 00066 00067 $wpp->doQuery( $offset, $limit ); 00068 }