X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=languages%2FLanguageConverter.php;h=b31b10ffc7c014ca2832383f5e37a80a523c6257;hb=64f0f6816d3e1bd1888495ccb7b332c30358b1ad;hp=b00aa3419d556cf7413f7ac81b11e2d908aa0b74;hpb=f875f3d31867067116641af987dea4511324e96b;p=lhc%2Fweb%2Fwiklou.git diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php index b00aa3419d..b31b10ffc7 100644 --- a/languages/LanguageConverter.php +++ b/languages/LanguageConverter.php @@ -34,7 +34,7 @@ class LanguageConverter { * @since 1.20 * @var array */ - static public $languagesWithVariants = array( + static public $languagesWithVariants = [ 'gan', 'iu', 'kk', @@ -44,7 +44,7 @@ class LanguageConverter { 'tg', 'uz', 'zh', - ); + ]; public $mMainLanguageCode; public $mVariants, $mVariantFallbacks, $mVariantNames; @@ -81,9 +81,9 @@ class LanguageConverter { * @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; @@ -91,7 +91,7 @@ class LanguageConverter { $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 @@ -103,7 +103,7 @@ class LanguageConverter { '-' => '-', // 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 ) ) { @@ -160,7 +160,7 @@ class LanguageConverter { $req = $this->getURLVariant(); - if ( $wgUser->isLoggedIn() && !$req ) { + if ( $wgUser->isSafeToLoad() && $wgUser->isLoggedIn() && !$req ) { $req = $this->getUserVariant(); } elseif ( !$req ) { $req = $this->getHeaderVariant(); @@ -257,6 +257,9 @@ class LanguageConverter { // 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' ); @@ -292,7 +295,7 @@ class LanguageConverter { return null; } - $fallbackLanguages = array(); + $fallbackLanguages = []; foreach ( $languages as $language ) { $this->mHeaderVariant = $this->validateVariant( $language ); if ( $this->mHeaderVariant ) { @@ -399,7 +402,7 @@ class LanguageConverter { ) { $attrs = Sanitizer::decodeTagAttributes( $elementMatches[2] ); $changed = false; - foreach ( array( 'title', 'alt' ) as $attrName ) { + foreach ( [ 'title', 'alt' ] as $attrName ) { if ( !isset( $attrs[$attrName] ) ) { continue; } @@ -469,7 +472,7 @@ class LanguageConverter { public function autoConvertToAllVariants( $text ) { $this->loadTables(); - $ret = array(); + $ret = []; foreach ( $this->mVariants as $variant ) { $ret[$variant] = $this->translate( $text, $variant ); } @@ -783,7 +786,7 @@ class LanguageConverter { return; } - $titles = array(); + $titles = []; foreach ( $variants as $v ) { if ( $v != $link ) { @@ -924,14 +927,14 @@ class LanguageConverter { * @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; @@ -955,7 +958,7 @@ class LanguageConverter { # Nothing to parse if there's no text if ( $txt === false || $txt === null || $txt === '' ) { - return array(); + return []; } // get all subpage links of the form @@ -963,7 +966,7 @@ class LanguageConverter { $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 ) { @@ -984,7 +987,7 @@ class LanguageConverter { // parse the mappings in this page $blocks = StringUtils::explode( '-{', $txt ); - $ret = array(); + $ret = []; $first = true; foreach ( $blocks as $block ) { if ( $first ) { @@ -992,8 +995,8 @@ class LanguageConverter { $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 ); @@ -1053,24 +1056,12 @@ class LanguageConverter { } /** - * 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 ); @@ -1081,7 +1072,6 @@ class LanguageConverter { } } } - return true; } /**