[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 magicword.txt 2 3 Magic Words are some phrases used in the wikitext. They are used for two things: 4 * Variables (like {{PAGENAME}}, {{SERVER}}, ...): part of wikitext, that looks 5 like templates but that don't accept any parameter. 6 * Parser functions (like {{fullurl:...}}, {{#special:...}}): behaves like 7 functions and accepts parameters. 8 9 The localized arrays keys are the internal name, and the values are an array, 10 whose include their case-sensitivity and their alias forms. The first form 11 defined is used by the program, for example, when moving a page and its old name 12 should include #REDIRECT. 13 14 They can be added in several arrays: 15 * By adding a file to $wgExtensionMessagesFiles and defining there $magicWords. 16 This array is associative with the language code in the first dimension key 17 and then a "normal" array of magic words. 18 * Localized arrays (languages/messages/LanguageXX.php) include their different 19 names to be used by the users. 20 21 To add a new variable, you should use the "MagicWordwgVariableIDs" hook to add 22 the internal name to the $magicWords array. You'll need to define the value of 23 the variable with the "ParserGetVariableValueSwitch" hook. 24 25 For example to add a new variable: 26 27 Create a file called ExtensionName.i18n.magic.php with the following contents: 28 ---- 29 <?php 30 31 $magicWords = array(); 32 33 $magicWords['en'] = array( 34 // Case sensitive. 35 'mag_custom' => array( 1, 'CUSTOM' ), 36 ); 37 38 $magicWords['es'] = array( 39 'mag_custom' => array( 1, 'ADUANERO' ), 40 ); 41 ---- 42 43 $wgExtensionMessagesFiles['ExtensionNameMagic'] = __DIR__ . '/ExtensionName.i18n.magic.php'; 44 $wgHooks['MagicWordwgVariableIDs'][] = 'wfAddCustomMagicWordID'; 45 $wgHooks['ParserGetVariableValueSwitch'][] = 'wfGetCustomMagicWordValue'; 46 47 function wfAddCustomMagicWordID( &$magicWords ) { 48 $magicWords[] = 'mag_custom'; 49 return true; 50 } 51 52 function wfGetCustomMagicWordValue( &$parser, &$varCache, &$index, &$ret ){ 53 if( $index == 'mag_custom' ){ 54 $ret = $varCache['mag_custom'] = "Custom value"; 55 } 56 return true; 57 } 58 59 And to add a new parser function: 60 61 Create a file called ExtensionName.i18n.magic.php with the following contents: 62 ---- 63 <?php 64 65 $magicWords = array(); 66 67 $magicWords['en'] = array( 68 // Case insensitive. 69 'mag_custom' => array( 0, 'custom' ), 70 ); 71 72 $magicWords['es'] = array( 73 'mag_custom' => array( 0, 'aduanero' ), 74 ); 75 ---- 76 77 $wgExtensionMessagesFiles['ExtensionNameMagic'] = __DIR__ . '/ExtensionName.i18n.magic.php'; 78 $wgHooks['ParserFirstCallInit'][] = 'wfRegisterCustomMagicWord'; 79 80 function wfRegisterCustomMagicWord( &$parser ){ 81 $parser->setFunctionHook( 'mag_custom', 'wfGetCustomMagicWordValue' ); 82 return true; 83 } 84 85 function wfGetCustomMagicWordValue( &$parser, $var1, $var2 ){ 86 return "custom: var1 is $var1, var2 is $var2"; 87 } 88 89 Note: the 'ParserFirstCallInit' hook is only available since 1.12. To work with 90 an older version, you'll need to use an extension function. 91 92 Online documentation (contains more informations): 93 Magic words: https://www.mediawiki.org/wiki/Manual:Magic_words 94 Variables: https://www.mediawiki.org/wiki/Manual:Variable 95 Parser functions: https://www.mediawiki.org/wiki/Manual:Parser_functions
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |