From c4ac89fe901dc059a2b51b7896427e9f557905c2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= Date: Sat, 8 Oct 2005 15:29:18 +0000 Subject: [PATCH] * Support for getting new pages from other namespaces than NS_MAIN * Code cleanup --- includes/SpecialNewpages.php | 41 +++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/includes/SpecialNewpages.php b/includes/SpecialNewpages.php index c23e4616a9..977ec3e344 100644 --- a/includes/SpecialNewpages.php +++ b/includes/SpecialNewpages.php @@ -16,6 +16,11 @@ require_once( 'QueryPage.php' ); * @subpackage SpecialPage */ class NewPagesPage extends QueryPage { + var $namespace; + + function NewPagesPage( $namespace ) { + $this->namespace = $namespace; + } function getName() { return 'Newpages'; @@ -24,7 +29,6 @@ class NewPagesPage extends QueryPage { function isExpensive() { # Indexed on RC, and will *not* work with querycache yet. return false; - #return parent::isExpensive(); } function getSQL() { @@ -51,7 +55,7 @@ class NewPagesPage extends QueryPage { page_latest as rev_id FROM $recentchanges,$page WHERE rc_cur_id=page_id AND rc_new=1 - AND rc_namespace=".NS_MAIN." AND page_is_redirect=0"; + AND rc_namespace=" . $this->namespace . " AND page_is_redirect=0"; } function formatResult( $skin, $result ) { @@ -103,35 +107,34 @@ class NewPagesPage extends QueryPage { /** * constructor */ -function wfSpecialNewpages($par, $specialPage) -{ - global $wgRequest; +function wfSpecialNewpages($par, $specialPage) { + global $wgRequest, $wgContLang; + list( $limit, $offset ) = wfCheckLimits(); - if( $par ) { + + if ( $par ) { $bits = preg_split( '/\s*,\s*/', trim( $par ) ); foreach ( $bits as $bit ) { - if ( 'shownav' == $bit ) $shownavigation = 1; - if ( is_numeric( $bit ) ) { + if ( 'shownav' == $bit ) + $shownavigation = true; + if ( is_numeric( $bit ) ) $limit = $bit; - } - if ( preg_match( '/^limit=(\d+)$/', $bit, $m ) ) { + if ( preg_match( '/^limit=(\d+)$/', $bit, $m ) ) $limit = intval($m[1]); - } - if ( preg_match( '/^offset=(\d+)$/', $bit, $m ) ) { + if ( preg_match( '/^offset=(\d+)$/', $bit, $m ) ) $offset = intval($m[1]); - } + if ( preg_match( '/^namespace=(.*)$/', $bit, $m ) ) + $namespace = $wgContLang->getNsIndex( $m[1] ); } } - if(!isset($shownavigation)) { - $shownavigation=!$specialPage->including(); - } + if ( ! isset( $shownavigation ) ) + $shownavigation = ! $specialPage->including(); - $npp = new NewPagesPage(); + $npp = new NewPagesPage( isset( $namespace ) ? $namespace : NS_MAIN ); - if( !$npp->doFeed( $wgRequest->getVal( 'feed' ) ) ) { + if ( ! $npp->doFeed( $wgRequest->getVal( 'feed' ) ) ) $npp->doQuery( $offset, $limit, $shownavigation ); - } } ?> -- 2.20.1