* @since 1.20
* @var array
*/
- static public $languagesWithVariants = array(
+ static public $languagesWithVariants = [
'gan',
'iu',
'kk',
'tg',
'uz',
'zh',
- );
+ ];
public $mMainLanguageCode;
public $mVariants, $mVariantFallbacks, $mVariantNames;
* @param array $flags Defining the custom strings that maps to the flags
* @param array $manualLevel Limit for supported variants
*/
- public function __construct( $langobj, $maincode, $variants = array(),
- $variantfallbacks = array(), $flags = array(),
- $manualLevel = array() ) {
+ public function __construct( $langobj, $maincode, $variants = [],
+ $variantfallbacks = [], $flags = [],
+ $manualLevel = [] ) {
global $wgDisabledVariants;
$this->mLangObj = $langobj;
$this->mMainLanguageCode = $maincode;
$this->mVariantFallbacks = $variantfallbacks;
$this->mVariantNames = Language::fetchLanguageNames();
$this->mCacheKey = wfMemcKey( 'conversiontables', $maincode );
- $defaultflags = array(
+ $defaultflags = [
// 'S' show converted text
// '+' add rules for alltext
// 'E' the gave flags is error
'-' => '-', // remove convert (not implement)
'H' => 'H', // add rule for convert code (but no display in placed code)
'N' => 'N' // current variant name
- );
+ ];
$this->mFlags = array_merge( $defaultflags, $flags );
foreach ( $this->mVariants as $v ) {
if ( array_key_exists( $v, $manualLevel ) ) {
$req = $this->getURLVariant();
- if ( $wgUser->isLoggedIn() && !$req ) {
+ if ( $wgUser->isSafeToLoad() && $wgUser->isLoggedIn() && !$req ) {
$req = $this->getUserVariant();
} elseif ( !$req ) {
$req = $this->getHeaderVariant();
// Get language variant preference from logged in users
// Don't call this on stub objects because that causes infinite
// recursion during initialisation
+ if ( !$wgUser->isSafeToLoad() ) {
+ return false;
+ }
if ( $wgUser->isLoggedIn() ) {
if ( $this->mMainLanguageCode == $wgContLang->getCode() ) {
$ret = $wgUser->getOption( 'variant' );
return null;
}
- $fallbackLanguages = array();
+ $fallbackLanguages = [];
foreach ( $languages as $language ) {
$this->mHeaderVariant = $this->validateVariant( $language );
if ( $this->mHeaderVariant ) {
) {
$attrs = Sanitizer::decodeTagAttributes( $elementMatches[2] );
$changed = false;
- foreach ( array( 'title', 'alt' ) as $attrName ) {
+ foreach ( [ 'title', 'alt' ] as $attrName ) {
if ( !isset( $attrs[$attrName] ) ) {
continue;
}
public function autoConvertToAllVariants( $text ) {
$this->loadTables();
- $ret = array();
+ $ret = [];
foreach ( $this->mVariants as $variant ) {
$ret[$variant] = $this->translate( $text, $variant );
}
return;
}
- $titles = array();
+ $titles = [];
foreach ( $variants as $v ) {
if ( $v != $link ) {
* @return array
*/
function parseCachedTable( $code, $subpage = '', $recursive = true ) {
- static $parsed = array();
+ static $parsed = [];
$key = 'Conversiontable/' . $code;
if ( $subpage ) {
$key .= '/' . $subpage;
}
if ( array_key_exists( $key, $parsed ) ) {
- return array();
+ return [];
}
$parsed[$key] = true;
# Nothing to parse if there's no text
if ( $txt === false || $txt === null || $txt === '' ) {
- return array();
+ return [];
}
// get all subpage links of the form
$linkhead = $this->mLangObj->getNsText( NS_MEDIAWIKI ) .
':Conversiontable';
$subs = StringUtils::explode( '[[', $txt );
- $sublinks = array();
+ $sublinks = [];
foreach ( $subs as $sub ) {
$link = explode( ']]', $sub, 2 );
if ( count( $link ) != 2 ) {
// parse the mappings in this page
$blocks = StringUtils::explode( '-{', $txt );
- $ret = array();
+ $ret = [];
$first = true;
foreach ( $blocks as $block ) {
if ( $first ) {
$first = false;
continue;
}
- $mappings = explode( '}-', $block, 2 );
- $stripped = str_replace( array( "'", '"', '*', '#' ), '', $mappings[0] );
+ $mappings = explode( '}-', $block, 2 )[0];
+ $stripped = str_replace( [ "'", '"', '*', '#' ], '', $mappings );
$table = StringUtils::explode( ';', $stripped );
foreach ( $table as $t ) {
$m = explode( '=>', $t, 3 );
}
/**
- * Hook to refresh the cache of conversion tables when
+ * Refresh the cache of conversion tables when
* MediaWiki:Conversiontable* is updated.
- * @private
*
- * @param WikiPage $page
- * @param User $user User object for the current user
- * @param Content $content New page content
- * @param string $summary Edit summary of the edit
- * @param bool $isMinor Was the edit marked as minor?
- * @param null $isWatch Unused.
- * @param null $section Unused.
- * @param int $flags Bitfield
- * @param Revision|null $revision New Revision object or null
- * @return bool True
+ * @param Title $titleobj The Title of the page being updated
*/
- function OnPageContentSaveComplete( $page, $user, $content, $summary, $isMinor,
- $isWatch, $section, $flags, $revision ) {
- $titleobj = $page->getTitle();
+ public function updateConversionTable( Title $titleobj ) {
if ( $titleobj->getNamespace() == NS_MEDIAWIKI ) {
$title = $titleobj->getDBkey();
$t = explode( '/', $title, 3 );
}
}
}
- return true;
}
/**
// -{zh-hans:<span style="font-size:120%;">xxx</span>;zh-hant:\
// <span style="font-size:120%;">yyy</span>;}-
// we should split it as:
- // array(
+ // [
// [0] => 'zh-hans:<span style="font-size:120%;">xxx</span>'
// [1] => 'zh-hant:<span style="font-size:120%;">yyy</span>'
// [2] => ''
- // )
+ // ]
$pat = '/;\s*(?=';
foreach ( $this->mVariants as $variant ) {
// zh-hans:xxx;zh-hant:yyy