From 25c82da91798a9db17649ae6e072c1bb10925bcd Mon Sep 17 00:00:00 2001 From: Erik Moeller Date: Sat, 28 May 2005 17:17:27 +0000 Subject: [PATCH] make Special:Newpages includable {{Special:Newpages}} => default number of pages, with no navigation {{Special:Newpages/shownav}} => show the header and navigation links {{Special:Newpages/10}} => set number of pages to 10 {{Special:Newpages/limit=5,offset=10,shownav}} => all possible params --- includes/QueryPage.php | 29 ++++++++++++++++------------- includes/SpecialNewpages.php | 29 ++++++++++++++++++++++++----- includes/SpecialPage.php | 2 +- 3 files changed, 41 insertions(+), 19 deletions(-) diff --git a/includes/QueryPage.php b/includes/QueryPage.php index 01af31ab8c..3e37e37b7e 100644 --- a/includes/QueryPage.php +++ b/includes/QueryPage.php @@ -199,8 +199,9 @@ class QueryPage { * * @param $offset database query offset * @param $limit database query limit + * @param $shownavigation show navigation like "next 200"? */ - function doQuery( $offset, $limit ) { + function doQuery( $offset, $limit, $shownavigation=true ) { global $wgUser, $wgOut, $wgLang, $wgRequest, $wgContLang; global $wgMiserMode; @@ -234,17 +235,17 @@ class QueryPage { $sk = $wgUser->getSkin( ); - $wgOut->addHTML( $this->getPageHeader() ); - - $top = wfShowingResults( $offset, $num); - $wgOut->addHTML( "

{$top}\n" ); - - # often disable 'next' link when we reach the end - if($num < $limit) { $atend = true; } else { $atend = false; } - - $sl = wfViewPrevNext( $offset, $limit , $wgContLang->specialPage( $sname ), "" ,$atend ); - $wgOut->addHTML( "
{$sl}

\n" ); - + if($shownavigation) { + $wgOut->addHTML( $this->getPageHeader() ); + $top = wfShowingResults( $offset, $num); + $wgOut->addHTML( "

{$top}\n" ); + + # often disable 'next' link when we reach the end + if($num < $limit) { $atend = true; } else { $atend = false; } + + $sl = wfViewPrevNext( $offset, $limit , $wgContLang->specialPage( $sname ), "" ,$atend ); + $wgOut->addHTML( "
{$sl}

\n" ); + } if ( $num > 0 ) { $s = "
    "; @@ -273,7 +274,9 @@ class QueryPage { $s .= '
'; $wgOut->addHTML( $s ); } - $wgOut->addHTML( "

{$sl}

\n" ); + if($shownavigation) { + $wgOut->addHTML( "

{$sl}

\n" ); + } return $num; } diff --git a/includes/SpecialNewpages.php b/includes/SpecialNewpages.php index a60324d79a..618375c29c 100644 --- a/includes/SpecialNewpages.php +++ b/includes/SpecialNewpages.php @@ -101,15 +101,34 @@ class NewPagesPage extends QueryPage { /** * constructor */ -function wfSpecialNewpages() +function wfSpecialNewpages($par, $specialPage) { global $wgRequest; - list( $limit, $offset ) = wfCheckLimits(); + list( $limit, $offset ) = wfCheckLimits(); + if( $par ) { + $bits = preg_split( '/\s*,\s*/', trim( $par ) ); + foreach ( $bits as $bit ) { + if ( 'shownav' == $bit ) $shownavigation = 1; + if ( is_numeric( $bit ) ) { + $limit = $bit; + } + + if ( preg_match( '/^limit=(\d+)$/', $bit, $m ) ) { + $limit = intval($m[1]); + } + if ( preg_match( '/^offset=(\d+)$/', $bit, $m ) ) { + $offset = intval($m[1]); + } + } + } + if(!isset($shownavigation)) { + $shownavigation=!$specialPage->including(); + } - $npp = new NewPagesPage(); + $npp = new NewPagesPage(); - if( !$npp->doFeed( $wgRequest->getVal( 'feed' ) ) ) { - $npp->doQuery( $offset, $limit ); + if( !$npp->doFeed( $wgRequest->getVal( 'feed' ) ) ) { + $npp->doQuery( $offset, $limit, $shownavigation ); } } diff --git a/includes/SpecialPage.php b/includes/SpecialPage.php index 8741610626..546900100c 100644 --- a/includes/SpecialPage.php +++ b/includes/SpecialPage.php @@ -48,7 +48,7 @@ $wgSpecialPages = array( 'Wantedpages' => new SpecialPage( 'Wantedpages' ), 'Shortpages' => new SpecialPage( 'Shortpages' ), 'Longpages' => new SpecialPage( 'Longpages' ), - 'Newpages' => new SpecialPage( 'Newpages' ), + 'Newpages' => new IncludableSpecialPage( 'Newpages' ), 'Ancientpages' => new SpecialPage( 'Ancientpages' ), 'Deadendpages' => new SpecialPage( 'Deadendpages' ), 'Allpages' => new IncludableSpecialPage( 'Allpages' ), -- 2.20.1