X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiQueryAllImages.php;h=6c962cdfbe67ea6b548ca8d9541f29080cd4d513;hb=68aab7ca8bd2bf7271a2f69aff1e7a60ab88078b;hp=20e9f5e509981b691133416b95a653981eb460c6;hpb=0de418559125c9ec3088e772c3daca1835e70a54;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiQueryAllImages.php b/includes/api/ApiQueryAllImages.php index 20e9f5e509..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']; @@ -359,6 +374,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { ), 'mime' => array( ApiBase::PARAM_DFLT => null, + ApiBase::PARAM_ISMULTI => true, ), 'limit' => array( ApiBase::PARAM_DFLT => 10, @@ -385,6 +401,8 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase { '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',