예제 #1
0
 /**
  * @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, ' ', '_');
 }
예제 #2
0
 /**
  * @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);
 }
예제 #3
0
 /**
  * @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;
     }
 }