From 132808e7855e5e13810eb9136a51e1eac484d2e9 Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Mon, 3 Jul 2006 03:30:28 +0000 Subject: [PATCH] Call the LanguageGetMagic hook only once (per language object) --- languages/Language.php | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/languages/Language.php b/languages/Language.php index cb13ae368c..cbb5e31655 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -879,15 +879,23 @@ class Language { # Fill a MagicWord object with data from here function getMagic( &$mw ) { - $raw = $this->getMagicWords(); - - wfRunHooks( 'LanguageGetMagic', array( &$raw, $this->getCode() ) ); - - if( !isset( $raw[$mw->mId] ) ) { - # Fall back to English if local list is incomplete - $raw =& Language::getMagicWords(); + if ( !isset( $this->mMagicExtensions ) ) { + $this->mMagicExtensions = array(); + wfRunHooks( 'LanguageGetMagic', array( &$this->mMagicExtensions, $this->getCode() ) ); } - $rawEntry = $raw[$mw->mId]; + if ( isset( $this->mMagicExtensions[$mw->mId] ) ) { + $rawEntry = $this->mMagicExtensions[$mw->mId]; + } else { + $magicWords =& $this->getMagicWords(); + if ( isset( $magicWords[$mw->mId] ) ) { + $rawEntry = $magicWords[$mw->mId]; + } else { + # Fall back to English if local list is incomplete + $magicWords =& Language::getMagicWords(); + $rawEntry = $magicWords[$mw->mId]; + } + } + $mw->mCaseSensitive = $rawEntry[0]; $mw->mSynonyms = array_slice( $rawEntry, 1 ); } -- 2.20.1