https://www.mediawiki.org/wiki/Special:Code/MediaWiki/112300
Revision: 112300
Author: tstarling
Date: 2012-02-24 05:14:42 +0000 (Fri, 24 Feb 2012)
Log Message:
-----------
Fixes for r94907/r94908: change in fallback behaviour allowing infinite loops.
Tested SecurePoll and LandingCheck, not DonationInterface.
Modified Paths:
--------------
trunk/extensions/DonationInterface/globalcollect_gateway/globalcollect.adapter.php
trunk/extensions/LandingCheck/SpecialLandingCheck.php
trunk/extensions/SecurePoll/includes/pages/Page.php
Modified:
trunk/extensions/DonationInterface/globalcollect_gateway/globalcollect.adapter.php
===================================================================
---
trunk/extensions/DonationInterface/globalcollect_gateway/globalcollect.adapter.php
2012-02-24 04:31:26 UTC (rev 112299)
+++
trunk/extensions/DonationInterface/globalcollect_gateway/globalcollect.adapter.php
2012-02-24 05:14:42 UTC (rev 112300)
@@ -1694,12 +1694,14 @@
switch ( $type ) {
case 'request':
- $count = 0;
- //Count's just there making sure we don't get
stuck here.
- while ( !in_array( $language,
$this->getAvailableLanguages() ) && $count < 3 ){
- // Get the fallback language
- $language = Language::getFallbackFor(
$language );
- $count += 1;
+ if ( !in_array( $language,
$this->getAvailableLanguages() ) ) {
+ $fallbacks = Language::getFallbacksFor(
$language );
+ foreach ( $fallbacks as $fallback ) {
+ if ( in_array( $fallback,
$this->getAvailableLanguages() ) ) {
+ $language = $fallback;
+ break;
+ }
+ }
}
if ( !in_array( $language,
$this->getAvailableLanguages() ) ){
Modified: trunk/extensions/LandingCheck/SpecialLandingCheck.php
===================================================================
--- trunk/extensions/LandingCheck/SpecialLandingCheck.php 2012-02-24
04:31:26 UTC (rev 112299)
+++ trunk/extensions/LandingCheck/SpecialLandingCheck.php 2012-02-24
05:14:42 UTC (rev 112300)
@@ -178,10 +178,9 @@
$landingPage . '/' . $language
);
// Add fallback languages
- $code = $language;
- while ( $code !== 'en' ) {
- $code = Language::getFallbackFor( $code );
- $targetTexts[] = $landingPage . '/' . $code;
+ $fallbacks = Language::getFallbacksFor( $language );
+ foreach ( $fallbacks as $fallback ) {
+ $targetTexts[] = $landingPage . '/' . $fallback;
}
}
Modified: trunk/extensions/SecurePoll/includes/pages/Page.php
===================================================================
--- trunk/extensions/SecurePoll/includes/pages/Page.php 2012-02-24 04:31:26 UTC
(rev 112299)
+++ trunk/extensions/SecurePoll/includes/pages/Page.php 2012-02-24 05:14:42 UTC
(rev 112300)
@@ -38,16 +38,14 @@
}
$wgLang = Language::factory( $userLang );
- $languages = array( $userLang );
- $fallback = $userLang;
- while ( $fallback = Language::getFallbackFor( $fallback ) ) {
- $languages[] = $fallback;
+ $languages = array_merge(
+ array( $userLang ),
+ Language::getFallbacksFor( $userLang ) );
+
+ if ( !in_array( $election->getLanguage(), $languages ) ) {
+ $languages[] = $election->getLanguage();
}
- if ( $fallback != $election->getLanguage() ) {
- $fallback = $election->getLanguage();
- $languages[] = $fallback;
- }
- if ( $fallback != 'en' ) {
+ if ( !in_array( 'en', $languages ) ) {
$languages[] = 'en';
}
$this->context->setLanguages( $languages );
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs