Go to the documentation of this file.
64 $this->singleLang = $val;
86 return $obj->makeFormattedData( $tags );
101 $resolutionunit = !isset( $tags[
'ResolutionUnit'] ) || $tags[
'ResolutionUnit'] == 2 ? 2 : 3;
102 unset( $tags[
'ResolutionUnit'] );
104 foreach ( $tags
as $tag => &$vals ) {
108 if ( !is_array( $tags[$tag] ) ) {
109 $vals =
array( $vals );
113 if ( isset( $tags[$tag][
'_type'] ) ) {
114 $type = $tags[$tag][
'_type'];
115 unset( $vals[
'_type'] );
121 if ( $tag ==
'GPSTimeStamp' && count( $vals ) === 3 ) {
124 $h = explode(
'/', $vals[0] );
125 $m = explode(
'/', $vals[1] );
126 $s = explode(
'/', $vals[2] );
141 $tags[$tag] = str_pad( intval( $h[0] / $h[1] ), 2,
'0', STR_PAD_LEFT )
142 .
':' . str_pad( intval( $m[0] / $m[1] ), 2,
'0', STR_PAD_LEFT )
143 .
':' . str_pad( intval(
$s[0] /
$s[1] ), 2,
'0', STR_PAD_LEFT );
162 if ( $tag ===
'Contact' ) {
167 foreach ( $vals
as &$val ) {
183 $val = $this->
exifMsg( $tag, $val );
191 case 'PhotometricInterpretation':
195 $val = $this->
exifMsg( $tag, $val );
213 $val = $this->
exifMsg( $tag, $val );
221 case 'PlanarConfiguration':
225 $val = $this->
exifMsg( $tag, $val );
234 case 'YCbCrPositioning':
238 $val = $this->
exifMsg( $tag, $val );
248 switch ( $resolutionunit ) {
263 case 'FlashpixVersion':
271 $val = $this->
exifMsg( $tag, $val );
279 case 'ComponentsConfiguration':
288 $val = $this->
exifMsg( $tag, $val );
297 case 'DateTimeOriginal':
298 case 'DateTimeDigitized':
299 case 'DateTimeReleased':
300 case 'DateTimeExpires':
303 case 'DateTimeMetadata':
304 if ( $val ==
'0000:00:00 00:00:00' || $val ==
' : : : : ' ) {
305 $val = $this->
msg(
'exif-unknowndate' )->text();
306 } elseif ( preg_match(
307 '/^(?:\d{4}):(?:\d\d):(?:\d\d) (?:\d\d):(?:\d\d):(?:\d\d)$/D',
315 } elseif ( preg_match(
'/^(?:\d{4}):(?:\d\d):(?:\d\d) (?:\d\d):(?:\d\d)$/D', $val ) ) {
323 } elseif ( preg_match(
'/^(?:\d{4}):(?:\d\d):(?:\d\d)$/D', $val ) ) {
326 . substr( $val, 5, 2 )
327 . substr( $val, 8, 2 )
336 case 'ExposureProgram':
347 $val = $this->
exifMsg( $tag, $val );
355 case 'SubjectDistance':
370 $val = $this->
exifMsg( $tag, $val );
401 $val = $this->
exifMsg( $tag, $val );
410 $flashDecode =
array(
411 'fired' => $val & bindec(
'00000001' ),
412 'return' => ( $val & bindec(
'00000110' ) ) >> 1,
413 'mode' => ( $val & bindec(
'00011000' ) ) >> 3,
414 'function' => ( $val & bindec(
'00100000' ) ) >> 5,
415 'redeye' => ( $val & bindec(
'01000000' ) ) >> 6,
418 $flashMsgs =
array();
419 # We do not need to handle unknown values since all are used.
420 foreach ( $flashDecode
as $subTag => $subValue ) {
421 # We do not need any message for zeroed values.
422 if ( $subTag !=
'fired' && $subValue == 0 ) {
425 $fullTag = $tag .
'-' . $subTag;
426 $flashMsgs[] = $this->
exifMsg( $fullTag, $subValue );
428 $val = $this->
getLanguage()->commaList( $flashMsgs );
431 case 'FocalPlaneResolutionUnit':
434 $val = $this->
exifMsg( $tag, $val );
442 case 'SensingMethod':
451 $val = $this->
exifMsg( $tag, $val );
462 $val = $this->
exifMsg( $tag, $val );
473 $val = $this->
exifMsg( $tag, $val );
481 case 'CustomRendered':
485 $val = $this->
exifMsg( $tag, $val );
498 $val = $this->
exifMsg( $tag, $val );
510 $val = $this->
exifMsg( $tag, $val );
518 case 'SceneCaptureType':
524 $val = $this->
exifMsg( $tag, $val );
539 $val = $this->
exifMsg( $tag, $val );
552 $val = $this->
exifMsg( $tag, $val );
565 $val = $this->
exifMsg( $tag, $val );
578 $val = $this->
exifMsg( $tag, $val );
586 case 'SubjectDistanceRange':
592 $val = $this->
exifMsg( $tag, $val );
601 case 'GPSLatitudeRef':
602 case 'GPSDestLatitudeRef':
606 $val = $this->
exifMsg(
'GPSLatitude', $val );
614 case 'GPSLongitudeRef':
615 case 'GPSDestLongitudeRef':
619 $val = $this->
exifMsg(
'GPSLongitude', $val );
629 $val = $this->
exifMsg(
'GPSAltitude',
'below-sealevel', $this->
formatNum( -$val, 3 ) );
631 $val = $this->
exifMsg(
'GPSAltitude',
'above-sealevel', $this->
formatNum( $val, 3 ) );
639 $val = $this->
exifMsg( $tag, $val );
647 case 'GPSMeasureMode':
651 $val = $this->
exifMsg( $tag, $val );
660 case 'GPSImgDirectionRef':
661 case 'GPSDestBearingRef':
665 $val = $this->
exifMsg(
'GPSDirection', $val );
674 case 'GPSDestLatitude':
678 case 'GPSDestLongitude':
687 $val = $this->
exifMsg(
'GPSSpeed', $val );
695 case 'GPSDestDistanceRef':
700 $val = $this->
exifMsg(
'GPSDestDistance', $val );
712 } elseif ( $val <= 5 ) {
714 } elseif ( $val <= 10 ) {
716 } elseif ( $val <= 20 ) {
728 $val = $this->
exifMsg( $tag,
'', $val );
732 if ( is_array( $val ) ) {
734 $val = $this->
msg(
'exif-software-version-value', $val[0], $val[1] )->text();
736 $val = $this->
exifMsg( $tag,
'', $val );
742 $val = $this->
msg(
'exif-exposuretime-format',
745 case 'ISOSpeedRatings':
749 if ( $val ==
'65535' ) {
750 $val = $this->
exifMsg( $tag,
'overflow' );
756 $val = $this->
msg(
'exif-fnumber-format',
761 case 'FocalLengthIn35mmFilm':
762 $val = $this->
msg(
'exif-focallength-format',
766 case 'MaxApertureValue':
767 if ( strpos( $val,
'/' ) !==
false ) {
769 list(
$n, $d ) = explode(
'/', $val );
770 if ( is_numeric(
$n ) && is_numeric( $d ) ) {
774 if ( is_numeric( $val ) ) {
775 $fNumber = pow( 2, $val / 2 );
776 if ( $fNumber !==
false ) {
777 $val = $this->
msg(
'exif-maxaperturevalue-value',
786 switch ( strtolower( $val ) ) {
812 case 'SubjectNewsCode':
824 if ( $val == 0 || $val == 9 ) {
826 } elseif ( $val < 5 && $val > 1 ) {
828 } elseif ( $val == 5 ) {
830 } elseif ( $val <= 8 && $val > 5 ) {
834 if ( $urgency !==
'' ) {
835 $val = $this->
exifMsg(
'urgency',
842 case 'OriginalImageHeight':
843 case 'OriginalImageWidth':
844 case 'PixelXDimension':
845 case 'PixelYDimension':
848 $val = $this->
formatNum( $val ) .
' ' . $this->
msg(
'unit-pixel' )->text();
858 case 'ImageDescription':
861 case 'RelatedSoundFile':
862 case 'ImageUniqueID':
863 case 'SpectralSensitivity':
864 case 'GPSSatellites':
868 case 'WorldRegionDest':
870 case 'CountryCodeDest':
871 case 'ProvinceOrStateDest':
873 case 'SublocationDest':
874 case 'WorldRegionCreated':
875 case 'CountryCreated':
876 case 'CountryCodeCreated':
877 case 'ProvinceOrStateCreated':
879 case 'SublocationCreated':
881 case 'SpecialInstructions':
886 case 'FixtureIdentifier':
888 case 'LocationDestCode':
890 case 'JPEGFileComment':
891 case 'iimSupplementalCategory':
892 case 'OriginalTransmissionRef':
894 case 'dc-contributor':
903 case 'CameraOwnerName':
906 case 'RightsCertificate':
907 case 'CopyrightOwner':
910 case 'OriginalDocumentID':
912 case 'MorePermissionsUrl':
913 case 'AttributionUrl':
914 case 'PreferredAttributionName':
915 case 'PNGFileComment':
917 case 'ContentWarning':
918 case 'GIFFileComment':
920 case 'IntellectualGenre':
922 case 'OrginisationInImage':
923 case 'PersonInImage':
925 $val = htmlspecialchars( $val );
933 $val = $this->
exifMsg( $tag, $val );
936 $val = htmlspecialchars( $val );
944 $val = $this->
exifMsg( $tag, $val );
949 if ( $val ==
'-1' ) {
950 $val = $this->
exifMsg( $tag,
'rejected' );
959 $val = htmlspecialchars( $lang );
961 $val = htmlspecialchars( $val );
1003 return $obj->flattenArrayReal( $vals,
$type, $noHtml );
1025 return $obj->flattenArrayReal( $vals,
$type, $noHtml );
1045 if ( !is_array( $vals ) ) {
1049 if ( isset( $vals[
'_type'] ) ) {
1050 $type = $vals[
'_type'];
1051 unset( $vals[
'_type'] );
1054 if ( !is_array( $vals ) ) {
1056 } elseif ( count( $vals ) === 1 &&
$type !==
'lang' ) {
1058 } elseif ( count( $vals ) === 0 ) {
1059 wfDebug( __METHOD__ .
" metadata array with 0 elements!\n" );
1078 $defaultItem =
false;
1079 $defaultLang =
false;
1088 if ( isset( $vals[
'x-default'] ) ) {
1089 $defaultItem = $vals[
'x-default'];
1090 unset( $vals[
'x-default'] );
1092 foreach ( $priorityLanguages
as $pLang ) {
1093 if ( isset( $vals[$pLang] ) ) {
1095 if ( $vals[$pLang] === $defaultItem ) {
1096 $defaultItem =
false;
1100 $vals[$pLang], $pLang,
1101 $isDefault, $noHtml );
1103 unset( $vals[$pLang] );
1105 if ( $this->singleLang ) {
1107 array(
'lang' => $pLang ), $vals[$pLang] );
1113 foreach ( $vals
as $lang => $item ) {
1114 if ( $item === $defaultItem ) {
1115 $defaultLang = $lang;
1118 $content .= $this->
langItem( $item,
1119 $lang,
false, $noHtml );
1120 if ( $this->singleLang ) {
1122 array(
'lang' => $lang ), $item );
1125 if ( $defaultItem !==
false ) {
1126 $content = $this->
langItem( $defaultItem,
1127 $defaultLang,
true, $noHtml ) .
1129 if ( $this->singleLang ) {
1130 return $defaultItem;
1137 return '<ul class="metadata-langlist">' .
1142 return "\n#" . implode(
"\n#", $vals );
1145 return "<ol><li>" . implode(
"</li>\n<li>", $vals ) .
'</li></ol>';
1149 return "\n*" . implode(
"\n*", $vals );
1152 return "<ul><li>" . implode(
"</li>\n<li>", $vals ) .
'</li></ul>';
1167 private function langItem(
$value, $lang, $default =
false, $noHtml =
false ) {
1168 if ( $lang ===
false && $default ===
false ) {
1169 throw new MWException(
'$lang and $default cannot both '
1176 $wrappedValue =
'<span class="mw-metadata-lang-value">'
1180 if ( $lang ===
false ) {
1181 $msg = $this->
msg(
'metadata-langitem-default', $wrappedValue );
1183 return $msg->text() .
"\n\n";
1186 return '<li class="mw-metadata-lang-default">'
1191 $lowLang = strtolower( $lang );
1193 if ( $langName ===
'' ) {
1195 list( $langPrefix ) = explode(
'-', $lowLang, 2 );
1197 if ( $langName ===
'' ) {
1204 $msg = $this->
msg(
'metadata-langitem', $wrappedValue, $langName, $lang );
1206 return '*' . $msg->text();
1209 $item =
'<li class="mw-metadata-lang-code-'
1212 $item .=
' mw-metadata-lang-default';
1214 $item .=
'" lang="' . $lang .
'">';
1215 $item .= $msg->text();
1230 private function exifMsg( $tag, $val, $arg =
null, $arg2 =
null ) {
1233 if ( $val ===
'' ) {
1237 return $this->
msg( $wgContLang->lc(
"exif-$tag-$val" ), $arg, $arg2 )->
text();
1248 private function formatNum( $num, $round =
false ) {
1250 if ( is_array( $num ) ) {
1252 foreach ( $num
as $number ) {
1258 if ( preg_match(
'/^(-?\d+)\/(\d+)$/', $num, $m ) ) {
1260 $newNum = $m[1] / $m[2];
1261 if ( $round !==
false ) {
1262 $newNum = round( $newNum, $round );
1268 return $this->
getLanguage()->formatNum( $newNum );
1270 if ( is_numeric( $num ) && $round !==
false ) {
1271 $num = round( $num, $round );
1286 if ( preg_match(
'/^(-?\d+)\/(\d+)$/', $num, $m ) ) {
1287 $numerator = intval( $m[1] );
1288 $denominator = intval( $m[2] );
1289 $gcd = $this->
gcd( abs( $numerator ), $denominator );
1292 return $this->
formatNum( $numerator / $gcd ) .
'/' . $this->
formatNum( $denominator / $gcd );
1307 private function gcd( $a, $b ) {
1317 $remainder = $a % $b;
1340 if ( !preg_match(
'/^\d{8}$/D', $val ) ) {
1345 switch ( substr( $val, 0, 2 ) ) {
1398 if ( $cat !==
'' ) {
1399 $catMsg = $this->
exifMsg(
'iimcategory', $cat );
1400 $val = $this->
exifMsg(
'subjectnewscode',
'', $val, $catMsg );
1418 if (
$type ===
'latitude' ) {
1420 } elseif (
$type ===
'longitude' ) {
1425 if (
$type ===
'latitude' ) {
1427 } elseif (
$type ===
'longitude' ) {
1432 $deg = floor( $nCoord );
1433 $min = floor( ( $nCoord - $deg ) * 60.0 );
1434 $sec = round( ( ( $nCoord - $deg ) - $min / 60 ) * 3600, 2 );
1440 return $this->
msg(
'exif-coordinate-format', $deg, $min, $sec, $ref, $coord )->text();
1458 if ( !( isset( $vals[
'CiAdrExtadr'] )
1459 || isset( $vals[
'CiAdrCity'] )
1460 || isset( $vals[
'CiAdrCtry'] )
1461 || isset( $vals[
'CiEmailWork'] )
1462 || isset( $vals[
'CiTelWork'] )
1463 || isset( $vals[
'CiAdrPcode'] )
1464 || isset( $vals[
'CiAdrRegion'] )
1465 || isset( $vals[
'CiUrlWork'] )
1476 foreach ( $vals
as &$val ) {
1477 $val = htmlspecialchars( $val );
1485 $url = $tel = $street = $city = $country =
'';
1486 $email = $postal = $region =
'';
1495 if ( isset( $vals[
'CiAdrExtadr'] ) ) {
1498 $street =
'<span class="extended-address">'
1500 $vals[
'CiAdrExtadr'] )
1503 if ( isset( $vals[
'CiAdrCity'] ) ) {
1504 $city =
'<span class="locality">'
1505 . htmlspecialchars( $vals[
'CiAdrCity'] )
1508 if ( isset( $vals[
'CiAdrCtry'] ) ) {
1509 $country =
'<span class="country-name">'
1510 . htmlspecialchars( $vals[
'CiAdrCtry'] )
1513 if ( isset( $vals[
'CiEmailWork'] ) ) {
1516 $splitEmails = explode(
"\n", $vals[
'CiEmailWork'] );
1517 foreach ( $splitEmails
as $e1 ) {
1519 foreach ( explode(
',', $e1 )
as $e2 ) {
1520 $finalEmail = trim( $e2 );
1521 if ( $finalEmail ==
',' || $finalEmail ==
'' ) {
1524 if ( strpos( $finalEmail,
'<' ) !==
false ) {
1527 $emails[] = $finalEmail;
1529 $emails[] =
'[mailto:'
1531 .
' <span class="email">'
1537 $email = implode(
', ', $emails );
1539 if ( isset( $vals[
'CiTelWork'] ) ) {
1540 $tel =
'<span class="tel">'
1541 . htmlspecialchars( $vals[
'CiTelWork'] )
1544 if ( isset( $vals[
'CiAdrPcode'] ) ) {
1545 $postal =
'<span class="postal-code">'
1547 $vals[
'CiAdrPcode'] )
1550 if ( isset( $vals[
'CiAdrRegion'] ) ) {
1552 $region =
'<span class="region">'
1554 $vals[
'CiAdrRegion'] )
1557 if ( isset( $vals[
'CiUrlWork'] ) ) {
1558 $url =
'<span class="url">'
1559 . htmlspecialchars( $vals[
'CiUrlWork'] )
1563 return $this->
msg(
'exif-contact-value', $email, $url,
1564 $street, $city, $region, $postal, $country,
1580 if ( preg_match(
'/^\\*\s*(.*?)\s*$/',
$line,
$matches ) ) {
1584 $fields = array_map(
'strtolower', $fields );
1609 'getExtendedMetadata',
1611 (
int)$this->singleLang,
1615 $cachedValue =
$wgMemc->get( $cacheKey );
1620 $extendedMetadata = $cachedValue[
'data'];
1625 if ( $this->singleLang ) {
1634 $wgMemc->set( $cacheKey, $valueToCache, $maxCacheTime );
1639 return $extendedMetadata;
1657 return $file->getExtendedMetadata() ?:
array();
1664 $fileMetadata =
array(
1666 'DateTime' =>
array(
1667 'value' => $uploadDate,
1668 'source' =>
'mediawiki-metadata',
1674 $text =
$title->getText();
1675 $pos = strrpos( $text,
'.' );
1678 $name = substr( $text, 0, $pos );
1683 $fileMetadata[
'ObjectName'] =
array(
1685 'source' =>
'mediawiki-metadata',
1689 $common =
$file->getCommonMetaArray();
1691 if ( $common !==
false ) {
1692 foreach ( $common
as $key =>
$value ) {
1693 $fileMetadata[$key] =
array(
1695 'source' =>
'file-metadata',
1702 return $fileMetadata;
1728 $visible = array_flip( self::getVisibleFields() );
1729 foreach ( $extendedMetadata
as $key =>
$value ) {
1730 if ( !isset( $visible[strtolower( $key )] ) ) {
1731 $extendedMetadata[$key][
'hidden'] =
'';
1737 return $extendedMetadata;
1751 || !isset(
$value[
'_type'] )
1752 ||
$value[
'_type'] !=
'lang'
1759 foreach ( $priorityLanguages
as $lang ) {
1760 if ( isset(
$value[$lang] ) ) {
1766 if ( isset(
$value[
'x-default'] ) ) {
1767 return $value[
'x-default'];
1771 unset(
$value[
'_type'] );
1772 if ( !empty(
$value ) ) {
1787 if ( !is_array( $metadata ) ) {
1790 foreach ( $metadata
as &$field ) {
1791 if ( isset( $field[
'value'] ) ) {
1803 if ( !is_array( $arr ) ) {
1808 foreach ( $arr
as $key => &
$value ) {
1810 if ( $sanitizedKey !== $key ) {
1811 if ( isset( $arr[$sanitizedKey] ) ) {
1816 $sanitizedKey .= $counter;
1819 $arr[$sanitizedKey] = $arr[$key];
1820 unset( $arr[$key] );
1822 if ( is_array(
$value ) ) {
1840 $key = preg_replace(
'/[^a-zA-z0-9_:.-]/',
'', $key );
1842 $key = preg_replace(
'/^[\d-.]+/',
'', $key );
1849 if ( $key ==
'_element' ) {
1863 $priorityLanguages =
1865 $priorityLanguages = array_merge(
1867 $priorityLanguages[0],
1868 $priorityLanguages[1]
1871 return $priorityLanguages;
1890 $this->meta =
$meta;
see documentation in includes Linker php for Linker::makeImageLink & $time
getContext()
Get the RequestContext object.
skin txt MediaWiki includes four core it has been set as the default in MediaWiki since the replacing Monobook it had been been the default skin since before being replaced by Vector largely rewritten in while keeping its appearance Several legacy skins were removed in the as the burden of supporting them became too heavy to bear Those in etc for skin dependent CSS etc for skin dependent JavaScript These can also be customised on a per user by etc This feature has led to a wide variety of user styles becoming that gallery is a good place to ending in php
msg()
Get a Message object with context set Parameters are the same as wfMessage()
globals will be eliminated from MediaWiki replaced by an application object which would be passed to constructors Whether that would be an convenient solution remains to be but certainly PHP makes such object oriented programming models easier than they were in previous versions For the time being MediaWiki programmers will have to work in an environment with some global context At the time of globals were initialised on startup by MediaWiki of these were configuration which are documented in DefaultSettings php There is no comprehensive documentation for the remaining however some of the most important ones are listed below They are typically initialised either in index php or in Setup php For a description of the see design txt $wgTitle Title object created from the request URL $wgOut OutputPage object for HTTP response $wgUser User object for the user associated with the current request $wgLang Language object selected by user preferences $wgContLang Language object associated with the wiki being viewed $wgParser Parser object Parser extensions register their hooks here $wgRequest WebRequest to get request data $wgMemc
design txt This is a brief overview of the new design More thorough and up to date information is available on the documentation wiki at etc Handles the details of getting and saving to the user table of the and dealing with sessions and cookies OutputPage Encapsulates the entire HTML page that will be sent in response to any server request It is used by calling its functions to add text
wfTimestamp( $outputtype=TS_UNIX, $ts=0)
Get a timestamp string in one of various formats.
wfProfileIn( $functionname)
Begin profiling of a function.
this class mediates it Skin Encapsulates a look and feel for the wiki All of the functions that render HTML and make choices about how to render it are here and are called from various other places when and is meant to be subclassed with other skins that may override some of its functions The User object contains a reference to a and so rather than having a global skin object we just rely on the global User and get the skin with $wgUser and also has some character encoding functions and other locale stuff The current user interface language is instantiated as and the content language as $wgContLang
getLanguage()
Get the Language object.
An IContextSource implementation which will inherit context from another source but allow individual ...
Implements some public methods and some protected utility functions which are required by multiple ch...
wfMemcKey()
Get a cache key.
wfDeprecated( $function, $version=false, $component=false, $callerOffset=2)
Throws a warning that $function is deprecated.
The simplest way of implementing IContextSource is to hold a RequestContext as a member variable and ...
const TS_ISO_8601
ISO 8601 format with no timezone: 1986-02-09T20:00:00Z.
wfProfileOut( $functionname='missing')
Stop profiling of a function.
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped noclasses just before the function returns a value If you return an< a > element with HTML attributes $attribs and contents $html will be returned If you return $ret will be returned and may include noclasses after processing after in associative array form externallinks including delete and has completed for all link tables default is conds Array Extra conditions for the No matching items in log is displayed if loglist is empty msgKey Array If you want a nice box with a set this to the key of the message First element is the message additional optional elements are parameters for the key that are processed with wfMessage() -> params() ->parseAsBlock() - offset Set to overwrite offset parameter in $wgRequest set to '' to unset offset - wrap String Wrap the message in html(usually something like "<
wfRunHooks( $event, array $args=array(), $deprecatedVersion=null)
Call hook functions defined in $wgHooks.
the array() calling protocol came about after MediaWiki 1.4rc1.
List of Api Query prop modules.
when a variable name is used in a it is silently declared as a new masking the global
wfTimestampNow()
Convenience function; returns MediaWiki timestamp for the present time.
setContext(IContextSource $context)
Set the IContextSource object.
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
const TS_MW
MediaWiki concatenated string timestamp (YYYYMMDDHHMMSS)
wfDebug( $text, $dest='all')
Sends a line to the debug log if enabled or, optionally, to a comment in output.
presenting them properly to the user as errors is done by the caller $title
Allows to change the fields on the form that will be generated $name
if(!defined( 'MEDIAWIKI')) if(!isset( $wgVersion)) $matches
static fetchLanguageName( $code, $inLanguage=null, $include='all')
if(PHP_SAPI !='cli') $file
static getFallbacksIncludingSiteLanguage( $code)
Get the ordered list of fallback languages, ending with the fallback language chain for the site lang...
This document is intended to provide useful advice for parties seeking to redistribute MediaWiki to end users It s targeted particularly at maintainers for Linux since it s been observed that distribution packages of MediaWiki often break We ve consistently had to recommend that users seeking support use official tarballs instead of their distribution s and this often solves whatever problem the user is having It would be nice if this could such as
static rawElement( $element, $attribs=array(), $contents='')
Returns an HTML element in a string.
Foreign file accessible through api.php requests.