/** * Returns the wikitext description for a single parser hook. * * @since 0.4.3 * * @param string $hookName * @param array $parameters * @param ParserHook $parserHook * * @return string */ protected function getParserHookDescription($hookName, array $parameters, ParserHook $parserHook) { global $wgLang; $descriptionData = $parserHook->getDescriptionData(ParserHook::TYPE_TAG); // TODO $this->sortParameters($descriptionData['parameters'], $descriptionData['defaults']); $description = ($parameters['pre'] ? '== ' : '<h2>') . $hookName . ($parameters['pre'] ? ' ==' : '</h2>'); if ($parameters['pre']) { $description .= "\n<!-- " . $this->msg('validator-describe-autogen') . ' -->'; } $description .= "\n\n"; if ($descriptionData['message'] !== false) { $description .= $this->msg('validator-describe-descriptionmsg', $this->msg($descriptionData['message'])); $description .= "\n\n"; } elseif ($descriptionData['description'] !== false) { $description .= wfMsgExt('validator-describe-descriptionmsg', $descriptionData['description']); $description .= "\n\n"; } if (count($descriptionData['names']) > 1) { $aliases = array(); foreach ($descriptionData['names'] as $name) { if ($name != $hookName) { $aliases[] = $name; } } $description .= $this->msg('validator-describe-aliases', $wgLang->listToText($aliases), count($aliases)); $description .= "\n\n"; } if ($parserHook->forTagExtensions || $parserHook->forParserFunctions) { if ($parserHook->forTagExtensions && $parserHook->forParserFunctions) { $description .= $this->msg('validator-describe-bothhooks'); } elseif ($parserHook->forTagExtensions) { $description .= $this->msg('validator-describe-tagextension'); } else { // if $parserHook->forParserFunctions $description .= $this->msg('validator-describe-parserfunction'); } $description .= "\n\n"; } $description .= $this->getParameterTable($descriptionData['parameters'], $descriptionData['defaults'], $parameters['pre']); if ($parserHook->forTagExtensions || $parserHook->forParserFunctions) { $description .= $this->getSyntaxExamples($hookName, $descriptionData['parameters'], $parserHook, $descriptionData['defaults'], $parameters['pre']); } if ($parameters['pre']) { $description = '<pre>' . $description . '</pre>'; } return $description; }