diff options
Diffstat (limited to 'includes/specials/SpecialNewimages.php')
-rw-r--r-- | includes/specials/SpecialNewimages.php | 57 |
1 files changed, 37 insertions, 20 deletions
diff --git a/includes/specials/SpecialNewimages.php b/includes/specials/SpecialNewimages.php index 350aac63..37d29734 100644 --- a/includes/specials/SpecialNewimages.php +++ b/includes/specials/SpecialNewimages.php @@ -21,12 +21,11 @@ * @ingroup SpecialPage */ class SpecialNewFiles extends IncludableSpecialPage { - - public function __construct(){ + public function __construct() { parent::__construct( 'Newimages' ); } - public function execute( $par ){ + public function execute( $par ) { $this->setHeaders(); $this->outputHeader(); @@ -37,19 +36,22 @@ class SpecialNewFiles extends IncludableSpecialPage { $form->prepareForm(); $form->displayForm( '' ); } + $this->getOutput()->addHTML( $pager->getBody() ); if ( !$this->including() ) { $this->getOutput()->addHTML( $pager->getNavigationBar() ); } } -} + protected function getGroupName() { + return 'changes'; + } +} /** * @ingroup SpecialPage Pager */ class NewFilesPager extends ReverseChronologicalPager { - /** * @var ImageGallery */ @@ -57,7 +59,7 @@ class NewFilesPager extends ReverseChronologicalPager { function __construct( IContextSource $context, $par = null ) { $this->like = $context->getRequest()->getText( 'like' ); - $this->showbots = $context->getRequest()->getBool( 'showbots' , 0 ); + $this->showbots = $context->getRequest()->getBool( 'showbots', 0 ); if ( is_numeric( $par ) ) { $this->setLimit( $par ); } @@ -70,9 +72,10 @@ class NewFilesPager extends ReverseChronologicalPager { $conds = $jconds = array(); $tables = array( 'image' ); - if( !$this->showbots ) { + if ( !$this->showbots ) { $groupsWithBotPermission = User::getGroupsWithPermission( 'bot' ); - if( count( $groupsWithBotPermission ) ) { + + if ( count( $groupsWithBotPermission ) ) { $tables[] = 'user_groups'; $conds[] = 'ug_group IS NULL'; $jconds['user_groups'] = array( @@ -85,11 +88,15 @@ class NewFilesPager extends ReverseChronologicalPager { } } - if( !$wgMiserMode && $this->like !== null ){ + if ( !$wgMiserMode && $this->like !== null ) { $dbr = wfGetDB( DB_SLAVE ); $likeObj = Title::newFromURL( $this->like ); - if( $likeObj instanceof Title ){ - $like = $dbr->buildLike( $dbr->anyString(), strtolower( $likeObj->getDBkey() ), $dbr->anyString() ); + if ( $likeObj instanceof Title ) { + $like = $dbr->buildLike( + $dbr->anyString(), + strtolower( $likeObj->getDBkey() ), + $dbr->anyString() + ); $conds[] = "LOWER(img_name) $like"; } } @@ -104,18 +111,27 @@ class NewFilesPager extends ReverseChronologicalPager { return $query; } - function getIndexField(){ + function getIndexField() { return 'img_timestamp'; } - function getStartBody(){ + function getStartBody() { if ( !$this->gallery ) { - $this->gallery = new ImageGallery(); + // Note that null for mode is taken to mean use default. + $mode = $this->getRequest()->getVal( 'gallerymode', null ); + try { + $this->gallery = ImageGalleryBase::factory( $mode ); + } catch ( MWException $e ) { + // User specified something invalid, fallback to default. + $this->gallery = ImageGalleryBase::factory(); + } + $this->gallery->setContext( $this->getContext() ); } + return ''; } - function getEndBody(){ + function getEndBody() { return $this->gallery->toHTML(); } @@ -125,11 +141,12 @@ class NewFilesPager extends ReverseChronologicalPager { $title = Title::makeTitle( NS_FILE, $name ); $ul = Linker::link( $user->getUserpage(), $user->getName() ); + $time = $this->getLanguage()->userTimeAndDate( $row->img_timestamp, $this->getUser() ); $this->gallery->add( $title, "$ul<br />\n<i>" - . htmlspecialchars( $this->getLanguage()->userTimeAndDate( $row->img_timestamp, $this->getUser() ) ) + . htmlspecialchars( $time ) . "</i><br />\n" ); } @@ -147,7 +164,6 @@ class NewFilesPager extends ReverseChronologicalPager { 'type' => 'check', 'label' => $this->msg( 'showhidebots', $this->msg( 'show' )->plain() )->escaped(), 'name' => 'showbots', - # 'default' => $this->getRequest()->getBool( 'showbots', 0 ), ), 'limit' => array( 'type' => 'hidden', @@ -161,12 +177,13 @@ class NewFilesPager extends ReverseChronologicalPager { ), ); - if( $wgMiserMode ){ + if ( $wgMiserMode ) { unset( $fields['like'] ); } - $form = new HTMLForm( $fields, $this->getContext() ); - $form->setTitle( $this->getTitle() ); + $context = new DerivativeContext( $this->getContext() ); + $context->setTitle( $this->getTitle() ); // Remove subpage + $form = new HTMLForm( $fields, $context ); $form->setSubmitTextMsg( 'ilsubmit' ); $form->setMethod( 'get' ); $form->setWrapperLegendMsg( 'newimages-legend' ); |