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->linkKnown( 00048 $nt, 00049 htmlspecialchars( $text ) 00050 ); 00051 $wlink = $skin->linkKnown( 00052 $nt, 00053 wfMsgHtml( 'watch' ), 00054 array(), 00055 array( 'action' => 'watch' ) 00056 ); 00057 00058 return wfSpecialList( $plink, $wlink ); 00059 } 00060 } 00061 00065 function wfSpecialUnwatchedpages() { 00066 global $wgUser, $wgOut; 00067 00068 if ( ! $wgUser->isAllowed( 'unwatchedpages' ) ) 00069 return $wgOut->permissionRequired( 'unwatchedpages' ); 00070 00071 list( $limit, $offset ) = wfCheckLimits(); 00072 00073 $wpp = new UnwatchedpagesPage(); 00074 00075 $wpp->doQuery( $offset, $limit ); 00076 }