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