MediaWiki master
|
Format Image metadata values into a human readable form. More...
Inherits MediaWiki\Context\ContextSource.
Public Member Functions | |
collapseContactInfo (array $vals) | |
Format the contact info field into a single value. | |
fetchExtendedMetadata (File $file) | |
Get an array of extended metadata. | |
flattenArrayReal ( $vals, $type='ul', $noHtml=false) | |
A function to collapse multivalued tags into a single value. | |
makeFormattedData ( $tags) | |
Numbers given by Exif user agents are often magical, that is they should be replaced by a detailed explanation depending on their value which most of the time are plain integers. | |
setSingleLanguage ( $val) | |
Trigger only outputting single language for multilanguage fields. | |
Public Member Functions inherited from MediaWiki\Context\ContextSource | |
canUseWikiPage () | |
Check whether a WikiPage object can be get with getWikiPage(). | |
exportSession () | |
Export the resolved user IP, HTTP headers, user ID, and session ID. | |
getActionName () | |
Get the action name for the current web request. | |
getAuthority () | |
getConfig () | |
getContext () | |
Get the base IContextSource object. | |
getCsrfTokenSet () | |
Get a repository to obtain and match CSRF tokens. | |
getLanguage () | |
getLanguageCode () | |
getOutput () | |
getRequest () | |
getSkin () | |
getTiming () | |
getTitle () | |
getUser () | |
getWikiPage () | |
Get the WikiPage object. | |
msg ( $key,... $params) | |
Get a Message object with context set Parameters are the same as wfMessage() | |
setContext (IContextSource $context) | |
Static Public Member Functions | |
static | getFormattedData ( $tags, $context=false) |
Numbers given by Exif user agents are often magical, that is they should be replaced by a detailed explanation depending on their value which most of the time are plain integers. | |
static | getVisibleFields () |
Get a list of fields that are visible by default. | |
Protected Member Functions | |
discardMultipleValues (&$metadata) | |
Takes an array returned by the getExtendedMetadata* functions, and turns all fields into single-valued ones by dropping extra values. | |
getExtendedMetadataFromFile (File $file) | |
Get file-based metadata in standardized format. | |
getExtendedMetadataFromHook (File $file, array $extendedMetadata, &$maxCacheTime) | |
Get additional metadata from hooks in standardized format. | |
getPriorityLanguages () | |
Returns a list of languages (first is best) to use when formatting multilang fields, based on user and site preferences. | |
literal ( $val) | |
Convenience function for getFormattedData() | |
resolveMultilangMetadata (&$metadata) | |
Takes an array returned by the getExtendedMetadata* functions, and resolves multi-language values in it. | |
resolveMultilangValue ( $value) | |
Turns an XMP-style multilang array into a single value. | |
resolveMultivalueValue ( $value) | |
Turns an XMP-style multivalue array into a single value by dropping all but the first value. | |
sanitizeArrayForAPI (&$arr) | |
Makes sure the given array is a valid API response fragment. | |
sanitizeKeyForAPI ( $key) | |
Turns a string into a valid API identifier. | |
Protected Attributes | |
bool | $singleLang = false |
Only output a single language for multi-language fields. | |
Format Image metadata values into a human readable form.
Note lots of these messages use the prefix 'exif' even though they may not be exif properties. For example 'exif-ImageDescription' can be the Exif ImageDescription, or it could be the iptc-iim caption property, or it could be the xmp dc:description property. This is because these messages should be independent of how the data is stored, sine the user doesn't care if the description is stored in xmp, exif, etc only that its a description. (Additionally many of these properties are merged together following the MWG standard, such that for example, exif properties override XMP properties that mean the same thing if there is a conflict).
It should perhaps use a prefix like 'metadata' instead, but there is already a large number of messages using the 'exif' prefix.
Definition at line 56 of file FormatMetadata.php.
FormatMetadata::collapseContactInfo | ( | array | $vals | ) |
Format the contact info field into a single value.
This function might be called from ExifBitmapHandler::convertMetadataVersion which is why it is public.
array | $vals | Array with fields of the ContactInfo struct defined in the IPTC4XMP spec. Or potentially an array with one element that is a free form text value from the older iptc iim 1:118 prop. |
Definition at line 1549 of file FormatMetadata.php.
References $url.
Referenced by ExifBitmapHandler\convertMetadataVersion(), and makeFormattedData().
|
protected |
Takes an array returned by the getExtendedMetadata* functions, and turns all fields into single-valued ones by dropping extra values.
array | &$metadata |
Definition at line 1895 of file FormatMetadata.php.
FormatMetadata::fetchExtendedMetadata | ( | File | $file | ) |
Get an array of extended metadata.
(See the imageinfo API for format.)
]], or [] on error
Definition at line 1683 of file FormatMetadata.php.
References File\getSha1(), File\isDeleted(), and wfTimestampNow().
FormatMetadata::flattenArrayReal | ( | $vals, | |
$type = 'ul', | |||
$noHtml = false ) |
A function to collapse multivalued tags into a single value.
This turns an array of (for example) authors into a bulleted list.
This is public on the basis it might be useful outside of this class.
array | $vals | Array of values |
string | $type | Type of array (either lang, ul, ol). lang = language assoc array with keys being the lang code ul = unordered list, ol = ordered list type can also come from the '_type' member of $vals. |
bool | $noHtml | If to avoid returning anything resembling HTML. (Ugly hack for backwards compatibility with old mediawiki). |
Definition at line 1114 of file FormatMetadata.php.
References getPriorityLanguages(), wfDebug(), and wfLogWarning().
Referenced by makeFormattedData().
|
protected |
Get file-based metadata in standardized format.
Note that for a remote file, this might return metadata supplied by extensions.
]], or [] on error
Definition at line 1733 of file FormatMetadata.php.
References File\getTimestamp(), File\getTitle(), and wfTimestamp().
|
protected |
Get additional metadata from hooks in standardized format.
File | $file | File to use |
array | $extendedMetadata | |
int | &$maxCacheTime | Hook handlers might use this parameter to override cache time |
]], or [] on error
Definition at line 1782 of file FormatMetadata.php.
References getContext().
|
static |
Numbers given by Exif user agents are often magical, that is they should be replaced by a detailed explanation depending on their value which most of the time are plain integers.
This function formats Exif (and other metadata) values into human readable form.
This is the usual entry point for this class.
array | $tags | The Exif data to format ( as returned by Exif::getFilteredData() or BitmapMetadataHandler ) |
IContextSource | false | $context |
Definition at line 89 of file FormatMetadata.php.
Referenced by MediaHandler\formatMetadataHelper().
|
protected |
Returns a list of languages (first is best) to use when formatting multilang fields, based on user and site preferences.
Definition at line 1978 of file FormatMetadata.php.
Referenced by flattenArrayReal().
|
static |
Get a list of fields that are visible by default.
Definition at line 1662 of file FormatMetadata.php.
References $lines, $matches, and wfMessage().
Referenced by MediaHandler\visibleMetadataFields().
|
protected |
Convenience function for getFormattedData()
string | int | null | $val | The literal value |
Definition at line 1284 of file FormatMetadata.php.
Referenced by makeFormattedData().
FormatMetadata::makeFormattedData | ( | $tags | ) |
Numbers given by Exif user agents are often magical, that is they should be replaced by a detailed explanation depending on their value which most of the time are plain integers.
This function formats Exif (and other metadata) values into human readable form.
array | $tags | The Exif data to format ( as returned by Exif::getFilteredData() or BitmapMetadataHandler ) |
Definition at line 109 of file FormatMetadata.php.
References collapseContactInfo(), flattenArrayReal(), MediaWiki\Context\ContextSource\getLanguage(), literal(), MediaWiki\Context\ContextSource\msg(), and wfTimestamp().
|
protected |
Takes an array returned by the getExtendedMetadata* functions, and resolves multi-language values in it.
array | &$metadata |
Definition at line 1878 of file FormatMetadata.php.
|
protected |
Turns an XMP-style multilang array into a single value.
If the value is not a multilang array, it is returned unchanged. See mediawiki.org/wiki/Manual:File_metadata_handling::Multi-language_array_format
mixed | $value |
Definition at line 1811 of file FormatMetadata.php.
|
protected |
Turns an XMP-style multivalue array into a single value by dropping all but the first value.
If the value is not a multivalue array (or a multivalue array inside a multilang array), it is returned unchanged. See mediawiki.org/wiki/Manual:File_metadata_handling::Multi-language_array_format
mixed | $value |
Definition at line 1852 of file FormatMetadata.php.
|
protected |
Makes sure the given array is a valid API response fragment.
array | &$arr |
Definition at line 1915 of file FormatMetadata.php.
|
protected |
Turns a string into a valid API identifier.
string | $key |
Definition at line 1954 of file FormatMetadata.php.
FormatMetadata::setSingleLanguage | ( | $val | ) |
Trigger only outputting single language for multilanguage fields.
bool | $val |
Definition at line 72 of file FormatMetadata.php.
Referenced by ApiQueryImageInfo\getInfo().
|
protected |
Only output a single language for multi-language fields.
Definition at line 64 of file FormatMetadata.php.