}
public static function ns( $parser, $part1 = '' ) {
- global $wgContLang;
if ( intval( $part1 ) || $part1 == "0" ) {
$index = intval( $part1 );
} else {
- $index = $wgContLang->getNsIndex( str_replace( ' ', '_', $part1 ) );
+ $index = $parser->getContentLanguage()->getNsIndex( str_replace( ' ', '_', $part1 ) );
}
if ( $index !== false ) {
- return $wgContLang->getFormattedNsText( $index );
+ return $parser->getContentLanguage()->getFormattedNsText( $index );
} else {
return [ 'found' => false ];
}
public static function urlencode( $parser, $s = '', $arg = null ) {
static $magicWords = null;
if ( is_null( $magicWords ) ) {
- $magicWords = new MagicWordArray( [ 'url_path', 'url_query', 'url_wiki' ] );
+ $magicWords =
+ $parser->getMagicWordFactory()->newArray( [ 'url_path', 'url_query', 'url_wiki' ] );
}
switch ( $magicWords->matchStartToEnd( $arg ) ) {
// Encode as though it's a wiki page, '_' for ' '.
}
public static function lcfirst( $parser, $s = '' ) {
- global $wgContLang;
- return $wgContLang->lcfirst( $s );
+ return $parser->getContentLanguage()->lcfirst( $s );
}
public static function ucfirst( $parser, $s = '' ) {
- global $wgContLang;
- return $wgContLang->ucfirst( $s );
+ return $parser->getContentLanguage()->ucfirst( $s );
}
/**
* @return string
*/
public static function lc( $parser, $s = '' ) {
- global $wgContLang;
- return $parser->markerSkipCallback( $s, [ $wgContLang, 'lc' ] );
+ return $parser->markerSkipCallback( $s, [ $parser->getContentLanguage(), 'lc' ] );
}
/**
* @return string
*/
public static function uc( $parser, $s = '' ) {
- global $wgContLang;
- return $parser->markerSkipCallback( $s, [ $wgContLang, 'uc' ] );
+ return $parser->markerSkipCallback( $s, [ $parser->getContentLanguage(), 'uc' ] );
}
public static function localurl( $parser, $s = '', $arg = null ) {
* @return string
*/
public static function formatnum( $parser, $num = '', $arg = null ) {
- if ( self::matchAgainstMagicword( 'rawsuffix', $arg ) ) {
+ if ( self::matchAgainstMagicword( $parser->getMagicWordFactory(), 'rawsuffix', $arg ) ) {
$func = [ $parser->getFunctionLang(), 'parseFormattedNumber' ];
- } elseif ( self::matchAgainstMagicword( 'nocommafysuffix', $arg ) ) {
+ } elseif (
+ self::matchAgainstMagicword( $parser->getMagicWordFactory(), 'nocommafysuffix', $arg )
+ ) {
$func = [ $parser->getFunctionLang(), 'formatNumNoSeparators' ];
} else {
$func = [ $parser->getFunctionLang(), 'formatNum' ];
static $magicWords = null;
if ( is_null( $magicWords ) ) {
- $magicWords = new MagicWordArray( [ 'displaytitle_noerror', 'displaytitle_noreplace' ] );
+ $magicWords = $parser->getMagicWordFactory()->newArray(
+ [ 'displaytitle_noerror', 'displaytitle_noreplace' ] );
}
$arg = $magicWords->matchStartToEnd( $uarg );
/**
* Matches the given value against the value of given magic word
*
+ * @param MagicWordFactory $magicWordFactory A factory to get the word from, e.g., from
+ * $parser->getMagicWordFactory()
* @param string $magicword Magic word key
* @param string $value Value to match
* @return bool True on successful match
*/
- private static function matchAgainstMagicword( $magicword, $value ) {
+ private static function matchAgainstMagicword(
+ MagicWordFactory $magicWordFactory, $magicword, $value
+ ) {
$value = trim( strval( $value ) );
if ( $value === '' ) {
return false;
}
- $mwObject = MagicWord::get( $magicword );
+ $mwObject = $magicWordFactory->get( $magicword );
return $mwObject->matchStartToEnd( $value );
}
* @param int|float $num
* @param string $raw
* @param Language|StubUserLang $language
+ * @param MagicWordFactory|null $magicWordFactory To evaluate $raw
* @return string
*/
- public static function formatRaw( $num, $raw, $language ) {
- if ( self::matchAgainstMagicword( 'rawsuffix', $raw ) ) {
+ public static function formatRaw(
+ $num, $raw, $language, MagicWordFactory $magicWordFactory = null
+ ) {
+ if ( $raw !== null && !$magicWordFactory ) {
+ $magicWordFactory = MediaWikiServices::getInstance()->getMagicWordFactory();
+ }
+ if (
+ $raw !== null && self::matchAgainstMagicword( $magicWordFactory, 'rawsuffix', $raw )
+ ) {
return $num;
} else {
return $language->formatNum( $num );
* @return string
*/
public static function pagesincategory( $parser, $name = '', $arg1 = null, $arg2 = null ) {
- global $wgContLang;
static $magicWords = null;
if ( is_null( $magicWords ) ) {
- $magicWords = new MagicWordArray( [
+ $magicWords = $parser->getMagicWordFactory()->newArray( [
'pagesincategory_all',
'pagesincategory_pages',
'pagesincategory_subcats',
static $cache = [];
// split the given option to its variable
- if ( self::matchAgainstMagicword( 'rawsuffix', $arg1 ) ) {
+ if ( self::matchAgainstMagicword( $parser->getMagicWordFactory(), 'rawsuffix', $arg1 ) ) {
// {{pagesincategory:|raw[|type]}}
$raw = $arg1;
$type = $magicWords->matchStartToEnd( $arg2 );
if ( !$title ) { # invalid title
return self::formatRaw( 0, $raw, $parser->getFunctionLang() );
}
- $wgContLang->findVariantLink( $name, $title, true );
+ $parser->getContentLanguage()->findVariantLink( $name, $title, true );
// Normalize name for cache
$name = $title->getDBkey();
public static function defaultsort( $parser, $text, $uarg = '' ) {
static $magicWords = null;
if ( is_null( $magicWords ) ) {
- $magicWords = new MagicWordArray( [ 'defaultsort_noerror', 'defaultsort_noreplace' ] );
+ $magicWords = $parser->getMagicWordFactory()->newArray(
+ [ 'defaultsort_noerror', 'defaultsort_noreplace' ] );
}
$arg = $magicWords->matchStartToEnd( $uarg );