50 parent::__construct(
'MIMEsearch' );
69 return [
'mime' =>
"{$this->major}/{$this->minor}" ];
74 if ( $this->minor !==
'*' ) {
78 $imgQuery = LocalFile::getQueryInfo();
80 'tables' => $imgQuery[
'tables'],
83 'title' =>
'img_name',
86 'value' =>
'img_name',
90 'img_user_text' => $imgQuery[
'fields'][
'img_user_text'],
112 'join_conds' => $imgQuery[
'joins'],
138 'type' =>
'combobox',
141 'label-message' =>
'mimetype',
147 HTMLForm::factory(
'ooui', $formDescriptor, $this->
getContext() )
148 ->setSubmitTextMsg(
'ilsubmit' )
152 ->displayForm(
false );
160 $result =
$dbr->select(
164 [
'img_media_type',
'img_major_mime',
'img_minor_mime' ],
167 [
'GROUP BY' => [
'img_media_type',
'img_major_mime',
'img_minor_mime' ] ]
169 foreach ( $result as $row ) {
170 $major = $row->img_major_mime;
171 $minor = $row->img_minor_mime;
172 $suggestions[
"$major/$minor" ] =
"$major/$minor";
173 if ( $lastMajor ===
$major ) {
175 $suggestions[
"$major/*" ] =
"$major/*";
179 ksort( $suggestions );
185 $this->mime = $par ?: $this->
getRequest()->getText(
'mime' );
186 $this->mime = trim( $this->mime );
187 list( $this->major, $this->minor ) = File::splitMime( $this->mime );
189 if ( $this->major ==
'' || $this->minor ==
'' || $this->minor ==
'unknown' ||
190 !self::isValidType( $this->major )
198 parent::execute( $par );
208 $nt = Title::makeTitle( $result->namespace, $result->title );
210 $text = $this->languageConverter->convertHtml( $nt->getText() );
212 Title::newFromText( $nt->getPrefixedText() ),
217 $download = $this->
msg(
'parentheses' )->rawParams( $download )->escaped();
219 $bytes = htmlspecialchars(
$lang->formatSize( $result->img_size ) );
220 $dimensions = $this->
msg(
'widthheight' )->numParams( $result->img_width,
221 $result->img_height )->escaped();
223 Title::makeTitle(
NS_USER, $result->img_user_text ),
224 $result->img_user_text
227 $time =
$lang->userTimeAndDate( $result->img_timestamp, $this->getUser() );
228 $time = htmlspecialchars( $time );
230 return "$download $plink . . $dimensions . . $bytes . . $user . . $time";
252 return in_array(
$type, $types );
Marks HTML that shouldn't be escaped.
static makeMediaLinkObj( $title, $html='', $time=false)
Create a direct link to a given uploaded file.
This is a class for doing query pages; since they're almost all the same, we factor out some of the f...
executeLBFromResultWrapper(IResultWrapper $res, $ns=null)
Creates a new LinkBatch object, adds all pages from the passed result wrapper (MUST include title and...
setDBLoadBalancer(ILoadBalancer $loadBalancer)
LinkBatchFactory null $linkBatchFactory
setLinkBatchFactory(LinkBatchFactory $linkBatchFactory)
ILoadBalancer null $loadBalancer
Searches the database for files of the requested MIME type, comparing this with the 'img_major_mime' ...
isCacheable()
Is the output of this query cacheable? Non-cacheable expensive pages will be disabled in miser mode a...
formatResult( $skin, $result)
isSyndicated()
Sometime we don't want to build rss / atom feeds.
preprocessResults( $db, $res)
Do any necessary preprocessing of the result object.
getPageHeader()
Generate and output the form.
linkParameters()
If using extra form wheely-dealies, return a set of parameters here as an associative array.
getQueryInfo()
Subclasses return an SQL query here, formatted as an array with the following keys: tables => Table(s...
isExpensive()
Is this query expensive (for some definition of expensive)? Then we don't let it run in miser mode.
static isValidType( $type)
getGroupName()
Under which header this special page is listed in Special:SpecialPages See messages 'specialpages-gro...
execute( $par)
This is the actual workhorse.
__construct(ILoadBalancer $loadBalancer, LinkBatchFactory $linkBatchFactory, LanguageConverterFactory $languageConverterFactory)
getOrderFields()
The index is on (img_media_type, img_major_mime, img_minor_mime) which unfortunately doesn't have img...
ILanguageConverter $languageConverter
outputHeader( $summaryMessageKey='')
Outputs a summary message on top of special pages Per default the message key is the canonical name o...
setHeaders()
Sets headers - this should be called from the execute() method of all derived classes!
getContext()
Gets the context this SpecialPage is executed in.
LinkRenderer null $linkRenderer
msg( $key,... $params)
Wrapper around wfMessage that sets the current context.
getRequest()
Get the WebRequest being used for this instance.
getPageTitle( $subpage=false)
Get a self-referential title object.
getLanguage()
Shortcut to get user's language.
addHelpLink( $to, $overrideBaseUrl=false)
Adds help link with an icon via page indicators.
getContentLanguage()
Shortcut to get content language.
The shared interface for all language converters.
const MEDIATYPE_MULTIMEDIA
const MEDIATYPE_EXECUTABLE
if(!isset( $args[0])) $lang