X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialUnwatchedpages.php;h=0f11140b2d207dc0ef7a0d2a7bd414ab00c49036;hb=2bae2fc8a97394d85a011cc71a8e67716229db4f;hp=71bdee8a9709e64f608f1d9830764fe709130c7e;hpb=f68b7bddb4e7593cfbb2750805ccb33b2b60c163;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialUnwatchedpages.php b/includes/specials/SpecialUnwatchedpages.php index 71bdee8a97..0f11140b2d 100644 --- a/includes/specials/SpecialUnwatchedpages.php +++ b/includes/specials/SpecialUnwatchedpages.php @@ -1,5 +1,8 @@ */ /** * A special page that displays a list of pages that are not on anyones watchlist. - * Implements Special:Unwatchedpages * * @ingroup SpecialPage - * @author Ævar Arnfjörð Bjarmason - * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason - * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later */ class UnwatchedpagesPage extends QueryPage { - function getName() { return 'Unwatchedpages'; } + function __construct( $name = 'Unwatchedpages' ) { + parent::__construct( $name, 'unwatchedpages' ); + } + function isExpensive() { return true; } function isSyndicated() { return false; } - function getSQL() { - $dbr = wfGetDB( DB_SLAVE ); - list( $page, $watchlist ) = $dbr->tableNamesN( 'page', 'watchlist' ); - $mwns = NS_MEDIAWIKI; - return - " - SELECT - 'Unwatchedpages' as type, - page_namespace as namespace, - page_title as title, - page_namespace as value - FROM $page - LEFT JOIN $watchlist ON wl_namespace = page_namespace AND page_title = wl_title - WHERE wl_title IS NULL AND page_is_redirect = 0 AND page_namespace<>$mwns - "; + function getQueryInfo() { + return array ( + 'tables' => array ( 'page', 'watchlist' ), + 'fields' => array ( 'page_namespace AS namespace', + 'page_title AS title', + 'page_namespace AS value' ), + 'conds' => array ( 'wl_title IS NULL', + 'page_is_redirect' => 0, + "page_namespace != '" . NS_MEDIAWIKI . + "'" ), + 'join_conds' => array ( 'watchlist' => array ( + 'LEFT JOIN', array ( 'wl_title = page_title', + 'wl_namespace = page_namespace' ) ) ) + ); } function sortDescending() { return false; } + function getOrderFields() { + return array( 'page_namespace', 'page_title' ); + } + + /** + * @param $skin Skin + * @param $result + * @return string + */ function formatResult( $skin, $result ) { global $wgContLang; $nt = Title::makeTitle( $result->namespace, $result->title ); $text = $wgContLang->convert( $nt->getPrefixedText() ); - $plink = $skin->linkKnown( + $plink = Linker::linkKnown( $nt, htmlspecialchars( $text ) ); - $wlink = $skin->linkKnown( + $token = WatchAction::getWatchToken( $nt, $this->getUser() ); + $wlink = Linker::linkKnown( $nt, wfMsgHtml( 'watch' ), array(), - array( 'action' => 'watch' ) + array( 'action' => 'watch', 'token' => $token ) ); return wfSpecialList( $plink, $wlink ); } } - -/** - * constructor - */ -function wfSpecialUnwatchedpages() { - global $wgUser, $wgOut; - - if ( ! $wgUser->isAllowed( 'unwatchedpages' ) ) - return $wgOut->permissionRequired( 'unwatchedpages' ); - - list( $limit, $offset ) = wfCheckLimits(); - - $wpp = new UnwatchedpagesPage(); - - $wpp->doQuery( $offset, $limit ); -}