getObjectNamePrefix(); return preg_replace_callback( "@\b{$prefix}(\d+)(?:#([-\w\d]+))?\b@", array($this, 'markupObjectNameLink'), $text); } public function markupObjectNameLink($matches) { $prefix = $this->getObjectNamePrefix(); $id = $matches[1]; if (isset($matches[2])) { $href = $matches[2]; $text = $matches[2]; if (preg_match('@^(?:comment-)?(\d{1,7})$@', $href, $matches)) { // Maximum length is 7 because 12345678 could be a file hash. $href = "comment-{$matches[1]}"; $text = $matches[1]; } $href = "/{$prefix}{$id}#{$href}"; $text = "{$prefix}{$id}#{$text}"; } else { $href = "/{$prefix}{$id}"; $text = "{$prefix}{$id}"; } return $this->getEngine()->storeText( phutil_render_tag( 'a', array( 'href' => $href, ), $text)); } }