Merge "Make it possible for subclasses to provide a different form"
[lhc/web/wiklou.git] / docs / magicword.txt
index 6ecdb56..6b4d37e 100644 (file)
@@ -12,9 +12,6 @@ defined is used by the program, for example, when moving a page and its old name
 should include #REDIRECT.
 
 They can be added in several arrays:
-* LanguageGetMagic hook, by adding a new key in $magicWords array. You can get
-  language code in the $lang parameter. Use both the localized name and the 
-  English name.
 * By adding a file to $wgExtensionMessagesFiles and defining there $magicWords.
   This array is associative with the language code in the first dimension key
   and then a "normal" array of magic words.
@@ -27,8 +24,24 @@ the variable with the "ParserGetVariableValueSwitch" hook.
 
 For example to add a new variable:
 
+Create a file called ExtensionName.i18n.magic.php with the following contents:
+----
+<?php
+
+$magicWords = array();
+
+$magicWords['en'] = array(
+       // Case sensitive.
+       'mag_custom' => array( 1, 'CUSTOM' ),
+);
+
+$magicWords['es'] = array(
+       'mag_custom' => array( 1, 'ADUANERO' ),
+);
+----
+
+$wgExtensionMessagesFiles['ExtensionNameMagic'] = __DIR__ . '/ExtensionName.i18n.magic.php';
 $wgHooks['MagicWordwgVariableIDs'][] = 'wfAddCustomMagicWordID';
-$wgHooks['LanguageGetMagic'][] = 'wfAddCustomMagicWordLang';
 $wgHooks['ParserGetVariableValueSwitch'][] = 'wfGetCustomMagicWordValue';
 
 function wfAddCustomMagicWordID( &$magicWords ) {
@@ -36,17 +49,6 @@ function wfAddCustomMagicWordID( &$magicWords ) {
        return true;
 }
 
-function wfAddCustomMagicWordLang( &$magicWords, $langCode ) {
-       switch ( $langCode ) {
-               case 'es':
-                       $magicWords['mag_custom'] = array( 1, "ADUANERO", "CUSTOM" );
-                       break;
-               default:
-                       $magicWords['mag_custom'] = array( 1, "CUSTOM" );
-       }
-       return true;
-}
-
 function wfGetCustomMagicWordValue( &$parser, &$varCache, &$index, &$ret ){
        if( $index == 'mag_custom' ){
                $ret = $varCache['mag_custom'] = "Custom value";
@@ -56,19 +58,24 @@ function wfGetCustomMagicWordValue( &$parser, &$varCache, &$index, &$ret ){
 
 And to add a new parser function:
 
-$wgHooks['LanguageGetMagic'][] = 'wfAddCustomMagicWordLang';
-$wgHooks['ParserFirstCallInit'][] = 'wfRegisterCustomMagicWord';
+Create a file called ExtensionName.i18n.magic.php with the following contents:
+----
+<?php
 
-function wfAddCustomMagicWordLang( &$magicWords, $langCode ) {
-       switch ( $langCode ) {
-               case 'es':
-                       $magicWords['mag_custom'] = array( 0, "aduanero", "custom" );
-                       break;
-               default:
-                       $magicWords['mag_custom'] = array( 0, "custom" );
-       }
-       return true;
-}
+$magicWords = array();
+
+$magicWords['en'] = array(
+       // Case insensitive.
+       'mag_custom' => array( 0, 'custom' ),
+);
+
+$magicWords['es'] = array(
+       'mag_custom' => array( 0, 'aduanero' ),
+);
+----
+
+$wgExtensionMessagesFiles['ExtensionNameMagic'] = __DIR__ . '/ExtensionName.i18n.magic.php';
+$wgHooks['ParserFirstCallInit'][] = 'wfRegisterCustomMagicWord';
 
 function wfRegisterCustomMagicWord( &$parser ){
        $parser->setFunctionHook( 'mag_custom', 'wfGetCustomMagicWordValue' );
@@ -79,10 +86,10 @@ function wfGetCustomMagicWordValue( &$parser, $var1, $var2 ){
        return "custom: var1 is $var1, var2 is $var2";
 }
 
-Note: the 'ParserFirstCallInit' hook is only aviable since 1.12. To work with
+Note: the 'ParserFirstCallInit' hook is only available since 1.12. To work with
 an older version, you'll need to use an extension function.
 
 Online documentation (contains more informations):
-Magic words: http://www.mediawiki.org/wiki/Manual:Magic_words
-Variables: http://www.mediawiki.org/wiki/Manual:Variable
-Parser functions: http://www.mediawiki.org/wiki/Manual:Parser_functions
\ No newline at end of file
+Magic words: https://www.mediawiki.org/wiki/Manual:Magic_words
+Variables: https://www.mediawiki.org/wiki/Manual:Variable
+Parser functions: https://www.mediawiki.org/wiki/Manual:Parser_functions