true ); $GLOBALS['wgExtensionCredits']['parserhook'][] = array( 'path' => __FILE__, 'name' => 'UserFunctions', 'version' => '2.7.0', 'url' => 'https://www.mediawiki.org/wiki/Extension:UserFunctions', 'author' => array( 'Ross McClure', 'Toni Hermoso Pulido', '...' ), 'descriptionmsg' => 'userfunctions-desc', 'license-name' => 'GPL-2.0-or-later' ); $GLOBALS['wgAutoloadClasses']['ExtUserFunctions'] = __DIR__ .'/UserFunctions_body.php'; $GLOBALS['wgMessagesDirs']['UserFunctions'] = __DIR__ . '/i18n'; $GLOBALS['wgExtensionMessagesFiles']['UserFunctionsMagic'] = __DIR__ . '/UserFunctions.i18n.magic.php'; $GLOBALS['wgHooks']['ParserFirstCallInit'][] = 'wfRegisterUserFunctions'; }); /** * @param $parser Parser * @return bool */ function wfRegisterUserFunctions( $parser ) { global $wgUFEnablePersonalDataFunctions, $wgUFAllowedNamespaces, $wgUFEnableSpecialContexts; // Whether it's a Special Page or a Maintenance Script $special = false; // Initialize NS $title = RequestContext::getMain()->getTitle(); $cur_ns = $title === null ? -1 : $title->getNamespace(); if ( $cur_ns == -1 ) { $special = true; } $process = false; // As far it's not special case, check if current page NS is in the allowed list if ( !$special ) { if ( isset( $wgUFAllowedNamespaces[$cur_ns] ) ) { if ( $wgUFAllowedNamespaces[$cur_ns] ) { $process = true; } } } else { if ( $wgUFEnableSpecialContexts ) { if ( $special ) { $process = true; } } } if ( $process ) { // These functions accept DOM-style arguments $parser->setFunctionHook( 'ifanon', 'ExtUserFunctions::ifanonObj', Parser::SFH_OBJECT_ARGS ); $parser->setFunctionHook( 'ifblocked', 'ExtUserFunctions::ifblockedObj', Parser::SFH_OBJECT_ARGS ); $parser->setFunctionHook( 'ifsysop', 'ExtUserFunctions::ifsysopObj', Parser::SFH_OBJECT_ARGS ); $parser->setFunctionHook( 'ifingroup', 'ExtUserFunctions::ifingroupObj', Parser::SFH_OBJECT_ARGS ); if ($wgUFEnablePersonalDataFunctions) { $parser->setFunctionHook( 'realname', 'ExtUserFunctions::realname' ); $parser->setFunctionHook( 'username', 'ExtUserFunctions::username' ); $parser->setFunctionHook( 'useremail', 'ExtUserFunctions::useremail' ); $parser->setFunctionHook( 'nickname', 'ExtUserFunctions::nickname' ); $parser->setFunctionHook( 'ip', 'ExtUserFunctions::ip' ); } } return true; }