36 parent::__construct( $name );
52 return [
'mime' =>
"{$this->major}/{$this->minor}" ];
57 if ( $this->minor !==
'*' ) {
63 'tables' => $imgQuery[
'tables'],
66 'title' =>
'img_name',
69 'value' =>
'img_name',
73 'img_user_text' => $imgQuery[
'fields'][
'img_user_text'],
95 'join_conds' => $imgQuery[
'joins'],
120 'type' =>
'combobox',
123 'label-message' =>
'mimetype',
130 ->setSubmitTextMsg(
'ilsubmit' )
134 ->displayForm(
false );
141 $result =
$dbr->select(
145 [
'img_media_type',
'img_major_mime',
'img_minor_mime' ],
148 [
'GROUP BY' => [
'img_media_type',
'img_major_mime',
'img_minor_mime' ] ]
150 foreach ( $result as $row ) {
151 $major = $row->img_major_mime;
152 $minor = $row->img_minor_mime;
153 $suggestions[
"$major/$minor" ] =
"$major/$minor";
154 if ( $lastMajor ===
$major ) {
156 $suggestions[
"$major/*" ] =
"$major/*";
160 ksort( $suggestions );
165 $this->mime = $par ?: $this->
getRequest()->getText(
'mime' );
166 $this->mime = trim( $this->mime );
169 if ( $this->major ==
'' || $this->minor ==
'' || $this->minor ==
'unknown' ||
170 !self::isValidType( $this->major )
178 parent::execute( $par );
188 $nt = Title::makeTitle( $result->namespace, $result->title );
189 $text = MediaWikiServices::getInstance()->getContentLanguage()
190 ->convert( htmlspecialchars( $nt->getText() ) );
192 Title::newFromText( $nt->getPrefixedText() ),
197 $download = $this->
msg(
'parentheses' )->rawParams( $download )->escaped();
199 $bytes = htmlspecialchars(
$lang->formatSize( $result->img_size ) );
200 $dimensions = $this->
msg(
'widthheight' )->numParams( $result->img_width,
201 $result->img_height )->escaped();
203 Title::makeTitle( NS_USER, $result->img_user_text ),
204 $result->img_user_text
207 $time =
$lang->userTimeAndDate( $result->img_timestamp, $this->getUser() );
210 return "$download $plink . . $dimensions . . $bytes . . $user . . $time";
232 return in_array(
$type, $types );
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
static splitMime( $mime)
Split an internet media type into its two components; if not a two-part name, set the minor type to '...
Marks HTML that shouldn't be escaped.
static makeMediaLinkObj( $title, $html='', $time=false)
Create a direct link to a given uploaded file.
static getQueryInfo(array $options=[])
Return the tables, fields, and join conditions to be selected to create a new localfile object.
Searches the database for files of the requested MIME type, comparing this with the 'img_major_mime' ...
getPageHeader()
Generate and output the form.
isExpensive()
Is this query expensive (for some definition of expensive)? Then we don't let it run in miser mode.
getOrderFields()
The index is on (img_media_type, img_major_mime, img_minor_mime) which unfortunately doesn't have img...
getGroupName()
Under which header this special page is listed in Special:SpecialPages See messages 'specialpages-gro...
formatResult( $skin, $result)
linkParameters()
If using extra form wheely-dealies, return a set of parameters here as an associative array.
preprocessResults( $db, $res)
Do any necessary preprocessing of the result object.
static isValidType( $type)
__construct( $name='MIMEsearch')
getQueryInfo()
Subclasses return an SQL query here, formatted as an array with the following keys: tables => Table(s...
isCacheable()
Is the output of this query cacheable? Non-cacheable expensive pages will be disabled in miser mode a...
execute( $par)
This is the actual workhorse.
isSyndicated()
Sometime we don't want to build rss / atom feeds.
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 ResultWrapper (MUST include title and ...
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.
msg( $key)
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.
MediaWiki Linker LinkRenderer null $linkRenderer
deferred txt A few of the database updates required by various functions here can be deferred until after the result page is displayed to the user For updating the view updating the linked to tables after a etc PHP does not yet have any way to tell the server to actually return and disconnect while still running these but it might have such a feature in the future We handle these by creating a deferred update object and putting those objects on a global list
see documentation in includes Linker php for Linker::makeImageLink & $time
either a unescaped string or a HtmlArmor object after in associative array form externallinks including delete and has completed for all link tables whether this was an auto creation use $formDescriptor instead & $formDescriptor
const MEDIATYPE_MULTIMEDIA
const MEDIATYPE_EXECUTABLE
if(!isset( $args[0])) $lang