X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialNewimages.php;h=14391d24595d8a97f8c11ca915c0d7b30798c821;hb=f47b7d6afc77ad8b08ba803289852f7c11ea1905;hp=629a50875b2f28ce20ffbb97d89bda70bdf73194;hpb=f9128d21b70e1a960f247f5af92af528f027d6a4;p=lhc%2Fweb%2Fwiklou.git
diff --git a/includes/specials/SpecialNewimages.php b/includes/specials/SpecialNewimages.php
index 629a50875b..14391d2459 100644
--- a/includes/specials/SpecialNewimages.php
+++ b/includes/specials/SpecialNewimages.php
@@ -71,189 +71,3 @@ class SpecialNewFiles extends IncludableSpecialPage {
}
}
}
-
-/**
- * @ingroup SpecialPage Pager
- */
-class NewFilesPager extends ReverseChronologicalPager {
- /**
- * @var ImageGallery
- */
- protected $gallery;
-
- /**
- * @var bool
- */
- protected $showBots;
-
- /**
- * @var bool
- */
- protected $hidePatrolled;
-
- function __construct( IContextSource $context, $par = null ) {
- $this->like = $context->getRequest()->getText( 'like' );
- $this->showBots = $context->getRequest()->getBool( 'showbots', 0 );
- $this->hidePatrolled = $context->getRequest()->getBool( 'hidepatrolled', 0 );
- if ( is_numeric( $par ) ) {
- $this->setLimit( $par );
- }
-
- parent::__construct( $context );
- }
-
- function getQueryInfo() {
- $conds = $jconds = [];
- $tables = [ 'image' ];
- $fields = [ 'img_name', 'img_user', 'img_timestamp' ];
- $options = [];
-
- if ( !$this->showBots ) {
- $groupsWithBotPermission = User::getGroupsWithPermission( 'bot' );
-
- if ( count( $groupsWithBotPermission ) ) {
- $tables[] = 'user_groups';
- $conds[] = 'ug_group IS NULL';
- $jconds['user_groups'] = [
- 'LEFT JOIN',
- [
- 'ug_group' => $groupsWithBotPermission,
- 'ug_user = img_user'
- ]
- ];
- }
- }
-
- if ( $this->hidePatrolled ) {
- $tables[] = 'recentchanges';
- $conds['rc_type'] = RC_LOG;
- $conds['rc_log_type'] = 'upload';
- $conds['rc_patrolled'] = 0;
- $conds['rc_namespace'] = NS_FILE;
- $jconds['recentchanges'] = [
- 'INNER JOIN',
- [
- 'rc_title = img_name',
- 'rc_user = img_user',
- 'rc_timestamp = img_timestamp'
- ]
- ];
- // We're ordering by img_timestamp, so we have to make sure MariaDB queries `image` first.
- // It sometimes decides to query `recentchanges` first and filesort the result set later
- // to get the right ordering. T124205 / https://mariadb.atlassian.net/browse/MDEV-8880
- $options[] = 'STRAIGHT_JOIN';
- }
-
- if ( !$this->getConfig()->get( 'MiserMode' ) && $this->like !== null ) {
- $dbr = wfGetDB( DB_SLAVE );
- $likeObj = Title::newFromText( $this->like );
- if ( $likeObj instanceof Title ) {
- $like = $dbr->buildLike(
- $dbr->anyString(),
- strtolower( $likeObj->getDBkey() ),
- $dbr->anyString()
- );
- $conds[] = "LOWER(img_name) $like";
- }
- }
-
- $query = [
- 'tables' => $tables,
- 'fields' => $fields,
- 'join_conds' => $jconds,
- 'conds' => $conds,
- 'options' => $options,
- ];
-
- return $query;
- }
-
- function getIndexField() {
- return 'img_timestamp';
- }
-
- function getStartBody() {
- if ( !$this->gallery ) {
- // Note that null for mode is taken to mean use default.
- $mode = $this->getRequest()->getVal( 'gallerymode', null );
- try {
- $this->gallery = ImageGalleryBase::factory( $mode, $this->getContext() );
- } catch ( Exception $e ) {
- // User specified something invalid, fallback to default.
- $this->gallery = ImageGalleryBase::factory( false, $this->getContext() );
- }
- }
-
- return '';
- }
-
- function getEndBody() {
- return $this->gallery->toHTML();
- }
-
- function formatRow( $row ) {
- $name = $row->img_name;
- $user = User::newFromId( $row->img_user );
-
- $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
\n"
- . htmlspecialchars( $time )
- . "
\n"
- );
- }
-
- function getForm() {
- $fields = [
- 'like' => [
- 'type' => 'text',
- 'label-message' => 'newimages-label',
- 'name' => 'like',
- ],
- 'showbots' => [
- 'type' => 'check',
- 'label-message' => 'newimages-showbots',
- 'name' => 'showbots',
- ],
- 'hidepatrolled' => [
- 'type' => 'check',
- 'label-message' => 'newimages-hidepatrolled',
- 'name' => 'hidepatrolled',
- ],
- 'limit' => [
- 'type' => 'hidden',
- 'default' => $this->mLimit,
- 'name' => 'limit',
- ],
- 'offset' => [
- 'type' => 'hidden',
- 'default' => $this->getRequest()->getText( 'offset' ),
- 'name' => 'offset',
- ],
- ];
-
- if ( $this->getConfig()->get( 'MiserMode' ) ) {
- unset( $fields['like'] );
- }
-
- if ( !$this->getUser()->useFilePatrol() ) {
- unset( $fields['hidepatrolled'] );
- }
-
- $context = new DerivativeContext( $this->getContext() );
- $context->setTitle( $this->getTitle() ); // Remove subpage
- $form = new HTMLForm( $fields, $context );
-
- $form->setSubmitTextMsg( 'ilsubmit' );
- $form->setSubmitProgressive();
-
- $form->setMethod( 'get' );
- $form->setWrapperLegendMsg( 'newimages-legend' );
-
- return $form;
- }
-}