/** * @since 1.27 * @see TitleFormatter::getPrefixedDBkey() * @param LinkTarget $target * @return string */ public function getPrefixedDBkey(LinkTarget $target) { $key = ''; if ($target->isExternal()) { $key .= $target->getInterwiki() . ':'; } // Try to get a namespace name, but fallback // to empty string if it doesn't exist try { $nsName = $this->getNamespaceName($target->getNamespace(), $target->getText()); } catch (InvalidArgumentException $e) { $nsName = ''; } if ($target->getNamespace() !== 0) { $key .= $nsName . ':'; } $key .= $target->getText(); return strtr($key, ' ', '_'); }
/** * @param LinkTarget $target * @param string|HtmlArmor|null $text * @param array $extraAttribs * @param array $query * @return string */ public function makeKnownLink(LinkTarget $target, $text = null, array $extraAttribs = [], array $query = []) { $classes = []; if ($target->isExternal()) { $classes[] = 'extiw'; } $colour = Linker::getLinkColour($target, $this->stubThreshold); if ($colour !== '') { $classes[] = $colour; } return $this->makePreloadedLink($target, $text, $classes ? implode(' ', $classes) : '', $extraAttribs, $query); }
/** * @since 1.16.3 * @param LinkTarget $target * @return LinkTarget */ public static function normaliseSpecialPage(LinkTarget $target) { if ($target->getNamespace() == NS_SPECIAL && !$target->isExternal()) { list($name, $subpage) = SpecialPageFactory::resolveAlias($target->getDBkey()); if (!$name) { return $target; } $ret = SpecialPage::getTitleValueFor($name, $subpage, $target->getFragment()); return $ret; } else { return $target; } }