<?php
/**
- *
- * @addtogroup SpecialPage
+ * @file
+ * @ingroup SpecialPage
*/
/**
* implements Special:Newpages
- * @addtogroup SpecialPage
+ * @ingroup SpecialPage
*/
class NewPagesForm {
// Options
$opts = new FormOptions();
+ $this->opts = $opts; // bind
$opts->add( 'hideliu', false );
$opts->add( 'hidepatrolled', false );
$opts->add( 'hidebots', false );
$opts->add( 'limit', 50 );
- $opts->add( 'offset', 0 );
+ $opts->add( 'offset', '' );
$opts->add( 'namespace', '0' );
$opts->add( 'username', '' );
$opts->add( 'feed', '' );
}
// Store some objects
- $this->opts = $opts;
$this->skin = $wgUser->getSkin();
$this->title = SpecialPage::getTitleFor( 'NewPages' );
}
protected function parseParams( $par ) {
+ global $wgLang;
$bits = preg_split( '/\s*,\s*/', trim( $par ) );
foreach ( $bits as $bit ) {
if ( 'shownav' == $bit )
$m = array();
if ( preg_match( '/^limit=(\d+)$/', $bit, $m ) )
$this->opts->setValue( 'limit', intval($m[1]) );
- if ( preg_match( '/^offset=(\d+)$/', $bit, $m ) )
+ // PG offsets not just digits!
+ if ( preg_match( '/^offset=([^=]+)$/', $bit, $m ) )
$this->opts->setValue( 'offset', intval($m[1]) );
if ( preg_match( '/^namespace=(.*)$/', $bit, $m ) ) {
$ns = $wgLang->getNsIndex( $m[1] );
$this->showNavigation = !$including; // Maybe changed in setup
$this->setup( $par );
- // Settings
- $this->form();
+ if( !$including ) {
+ // Settings
+ $this->form();
- if( !$including ){
$this->setSyndicated();
$feedType = $this->opts->getValue( 'feed' );
if( $feedType ) {
if ( $wgGroupPermissions['*']['createpage'] !== true )
unset($filters['hideliu']);
- if ( $wgUser->useNPPatrol() )
+ if ( !$wgUser->useNPPatrol() )
unset($filters['hidepatrolled']);
$links = array();
$this->title->getFullUrl() );
$pager = new NewPagesPager( $this, $this->opts );
+ $limit = $this->opts->getValue( 'limit' );
+ global $wgFeedLimit;
+ if( $limit > $wgFeedLimit ) {
+ $limit = $wgFeedLimit;
+ }
+ $pager->mLimit = $limit;
$feed->outHeader();
if( $pager->getNumRows() > 0 ) {
}
/**
- * @addtogroup Pager
+ * @ingroup SpecialPage Pager
*/
class NewPagesPager extends ReverseChronologicalPager {
// Stored opts