summaryrefslogtreecommitdiff
path: root/docs/magicword.txt
blob: 74e49cff0f4854ae89d7287c9b5ed4cc4d4ba8e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
magicword.txt

Magic Words are some phrases used in the wikitext. They are defined in several arrays:
* $magicWords (includes/MagicWord.php) includes their internal names ('MAG_XXX').
* $wgVariableIDs (includes/MagicWord.php) includes their IDs (MAG_XXX, which are constants),
  after their internal names are used for "define()".
* Localized arrays (languages/LanguageXX.php) include their different names to be used by the users.

The localized arrays keys are the internal IDs, and the values are an array, whose include their
case-sensitivity and their alias forms. The first form defined is used by the program, for example,
when moving a page and its old name should include #REDIRECT.

Adding magic words should be done using several hooks:
* "MagicWordMagicWords" should be used to add the internal name ('MAG_XXX') to $magicWords.
* "MagicWordwgVariableIDs" should be used to add the ID (MAG_XXX constant) to $wgVariableIDs.
* "LanguageGetMagic" should be used to add the different names of the magic word. Use both
  the localized name and the English name. Get the language code by the parameter $langCode;

For example:

$wgHooks['MagicWordMagicWords'][] = 'wfAddCustomMagicWord';
$wgHooks['MagicWordwgVariableIDs'][] = 'wfAddCustomMagicWordID';
$wgHooks['LanguageGetMagic'][] = 'wfAddCustomMagicWordLang';

function wfAddCustomMagicWord( &$magicWords ) {
	$magicWords[] = 'MAG_CUSTOM';
	return true;
}

function wfAddCustomMagicWordID( &$magicWords ) {
	$magicWords[] = MAG_CUSTOM;
	return true;
}

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;
}