X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiQueryAllImages.php;h=6c962cdfbe67ea6b548ca8d9541f29080cd4d513;hb=68aab7ca8bd2bf7271a2f69aff1e7a60ab88078b;hp=95ad6ef4b7ccb9184bcb1a839e9f1ae44be41050;hpb=201928033d59d5f5bccadac48bc4a10c27a0384a;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiQueryAllImages.php b/includes/api/ApiQueryAllImages.php index 95ad6ef4b7..6c962cdfbe 100644 --- a/includes/api/ApiQueryAllImages.php +++ b/includes/api/ApiQueryAllImages.php @@ -232,10 +232,25 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { $this->dieUsage( 'MIME search disabled in Miser Mode', 'mimesearchdisabled' ); } - list( $major, $minor ) = File::splitMime( $params['mime'] ); - - $this->addWhereFld( 'img_major_mime', $major ); - $this->addWhereFld( 'img_minor_mime', $minor ); + $mimeConds = array(); + foreach ( $params['mime'] as $mime ) { + list( $major, $minor ) = File::splitMime( $mime ); + $mimeConds[] = $db->makeList( + array( + 'img_major_mime' => $major, + 'img_minor_mime' => $minor, + ), + LIST_AND + ); + } + // safeguard against internal_api_error_DBQueryError + if ( count( $mimeConds ) > 0 ) { + $this->addWhere( $db->makeList( $mimeConds, LIST_OR ) ); + } else { + // no MIME types, no files + $this->getResult()->addValue( 'query', $this->getModuleName(), array() ); + return; + } } $limit = $params['limit']; @@ -333,7 +348,9 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { 'prop' => array( ApiBase::PARAM_TYPE => ApiQueryImageInfo::getPropertyNames( $this->propertyFilter ), ApiBase::PARAM_DFLT => 'timestamp|url', - ApiBase::PARAM_ISMULTI => true + ApiBase::PARAM_ISMULTI => true, + ApiBase::PARAM_HELP_MSG => 'apihelp-query+imageinfo-param-prop', + ApiBase::PARAM_HELP_MSG_PER_VALUE => ApiQueryImageInfo::getPropertyMessages( $this->propertyFilter ), ), 'prefix' => null, 'minsize' => array( @@ -357,6 +374,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { ), 'mime' => array( ApiBase::PARAM_DFLT => null, + ApiBase::PARAM_ISMULTI => true, ), 'limit' => array( ApiBase::PARAM_DFLT => 10, @@ -376,13 +394,15 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { private $propertyFilter = array( 'archivename', 'thumbmime', 'uploadwarning' ); - public function getExamplesMessages() { + protected function getExamplesMessages() { return array( 'action=query&list=allimages&aifrom=B' => 'apihelp-query+allimages-example-B', 'action=query&list=allimages&aiprop=user|timestamp|url&' . 'aisort=timestamp&aidir=older' => 'apihelp-query+allimages-example-recent', + 'action=query&list=allimages&aimime=image/png|image/gif' + => 'apihelp-query+allimages-example-mimetypes', 'action=query&generator=allimages&gailimit=4&' . 'gaifrom=T&prop=imageinfo' => 'apihelp-query+allimages-example-generator',