private function registerParserHookHandler() { $self = $this; $this->globals['wgHooks']['ParserFirstCallInit'][] = function (\Parser &$parser) use($self) { $hookRegistrant = new HookRegistrant($parser); $hookRegistrant->registerFunction(new FunctionRunner($self->getGitHubHookDefinition(), $self->getGitHubHookHandler(), array(FunctionRunner::OPT_DO_PARSE => false))); return true; }; }
private function registerParserFunctionHooks(ApplicationFactory $applicationFactory) { /** * @see https://www.mediawiki.org/wiki/Manual:Hooks/ParserFirstCallInit */ $this->handlers['ParserFirstCallInit'] = function (&$parser) use($applicationFactory) { $parserFunctionFactory = $applicationFactory->newParserFunctionFactory($parser); list($name, $definition, $flag) = $parserFunctionFactory->newAskParserFunctionDefinition(); $parser->setFunctionHook($name, $definition, $flag); list($name, $definition, $flag) = $parserFunctionFactory->newShowParserFunctionDefinition(); $parser->setFunctionHook($name, $definition, $flag); list($name, $definition, $flag) = $parserFunctionFactory->newSubobjectParserFunctionDefinition(); $parser->setFunctionHook($name, $definition, $flag); list($name, $definition, $flag) = $parserFunctionFactory->newRecurringEventsParserFunctionDefinition(); $parser->setFunctionHook($name, $definition, $flag); list($name, $definition, $flag) = $parserFunctionFactory->newSetParserFunctionDefinition(); $parser->setFunctionHook($name, $definition, $flag); list($name, $definition, $flag) = $parserFunctionFactory->newConceptParserFunctionDefinition(); $parser->setFunctionHook($name, $definition, $flag); list($name, $definition, $flag) = $parserFunctionFactory->newDeclareParserFunctionDefinition(); $parser->setFunctionHook($name, $definition, $flag); $hookRegistrant = new HookRegistrant($parser); $infoFunctionDefinition = InfoParserFunction::getHookDefinition(); $infoFunctionHandler = new InfoParserFunction(); $hookRegistrant->registerFunctionHandler($infoFunctionDefinition, $infoFunctionHandler); $hookRegistrant->registerHookHandler($infoFunctionDefinition, $infoFunctionHandler); $docsFunctionDefinition = DocumentationParserFunction::getHookDefinition(); $docsFunctionHandler = new DocumentationParserFunction(); $hookRegistrant->registerFunctionHandler($docsFunctionDefinition, $docsFunctionHandler); $hookRegistrant->registerHookHandler($docsFunctionDefinition, $docsFunctionHandler); return true; }; }
protected function registerParserHook() { $runner = $this->getHookRunner(); $registrant = new HookRegistrant($this->parser); $registrant->registerHook($runner); }
/** * @see https://www.mediawiki.org/wiki/Manual:$this->globalVars['wgHooks'] * * @note $this->globalVars['wgHooks'] contains a list of hooks which specifies for every event an * array of functions to be called. */ private function registerHooks() { $hookRegistry = new HookRegistry($this->globalVars, $this->directory); $hookRegistry->register(); // Old-style registration $this->globalVars['wgHooks']['AdminLinks'][] = 'SMWHooks::addToAdminLinks'; $this->globalVars['wgHooks']['PageSchemasRegisterHandlers'][] = 'SMWHooks::onPageSchemasRegistration'; $this->globalVars['wgHooks']['ParserFirstCallInit'][] = function (\Parser &$parser) { $hookRegistrant = new HookRegistrant($parser); $infoFunctionDefinition = InfoParserFunction::getHookDefinition(); $infoFunctionHandler = new InfoParserFunction(); $hookRegistrant->registerFunctionHandler($infoFunctionDefinition, $infoFunctionHandler); $hookRegistrant->registerHookHandler($infoFunctionDefinition, $infoFunctionHandler); $docsFunctionDefinition = DocumentationParserFunction::getHookDefinition(); $docsFunctionHandler = new DocumentationParserFunction(); $hookRegistrant->registerFunctionHandler($docsFunctionDefinition, $docsFunctionHandler); $hookRegistrant->registerHookHandler($docsFunctionDefinition, $docsFunctionHandler); return true; }; }
/** * @dataProvider namesProvider */ public function testRegisterHookHandler(array $names) { $parser = $this->newMockParserForHook($names); $registrant = new HookRegistrant($parser); $registrant->registerHookHandler(new HookDefinition($names), $this->getMock('ParserHooks\\HookHandler')); }