/**
* Replace <!--LINK--> link placeholders with actual links, in the buffer
*
- * @param string $text
+ * @param string &$text
*/
public function replace( &$text ) {
-
$this->replaceInternal( $text );
$this->replaceInterwiki( $text );
-
}
/**
* Replace internal links
- * @param string $text
+ * @param string &$text
*/
protected function replaceInternal( &$text ) {
if ( !$this->internals ) {
$linkCache = LinkCache::singleton();
$output = $this->parent->getOutput();
$linkRenderer = $this->parent->getLinkRenderer();
- $threshold = $linkRenderer->getStubThreshold();
- $dbr = wfGetDB( DB_SLAVE );
+ $dbr = wfGetDB( DB_REPLICA );
# Sort by namespace
ksort( $this->internals );
} else {
$id = $linkCache->getGoodLinkID( $pdbk );
if ( $id != 0 ) {
- $colours[$pdbk] = Linker::getLinkColour( $title, $threshold );
+ $colours[$pdbk] = $linkRenderer->getLinkClasses( $title );
$output->addLink( $title, $id );
$linkcolour_ids[$id] = $pdbk;
} elseif ( $linkCache->isBadLink( $pdbk ) ) {
$pdbk = $title->getPrefixedDBkey();
$linkCache->addGoodLinkObjFromRow( $title, $s );
$output->addLink( $title, $s->page_id );
- $colours[$pdbk] = Linker::getLinkColour( $title, $threshold );
+ $colours[$pdbk] = $linkRenderer->getLinkClasses( $title );
// add id to the extension todolist
$linkcolour_ids[$s->page_id] = $pdbk;
}
$replacer->cb(),
$text
);
-
}
/**
* Replace interwiki links
- * @param string $text
+ * @param string &$text
*/
protected function replaceInterwiki( &$text ) {
if ( empty( $this->interwikis ) ) {
/**
* Modify $this->internals and $colours according to language variant linking rules
- * @param array $colours
+ * @param array &$colours
*/
protected function doVariants( &$colours ) {
global $wgContLang;
$variantMap = []; // maps $pdbkey_Variant => $keys (of link holders)
$output = $this->parent->getOutput();
$linkCache = LinkCache::singleton();
- $threshold = $this->parent->getOptions()->getStubThreshold();
$titlesToBeConverted = '';
$titlesAttrs = [];
if ( !$linkBatch->isEmpty() ) {
// construct query
- $dbr = wfGetDB( DB_SLAVE );
+ $dbr = wfGetDB( DB_REPLICA );
$fields = array_merge(
LinkCache::getSelectFields(),
[ 'page_namespace', 'page_title' ]
);
$linkcolour_ids = [];
+ $linkRenderer = $this->parent->getLinkRenderer();
// for each found variants, figure out link holders and replace
foreach ( $varRes as $s ) {
$entry['pdbk'] = $varPdbk;
// set pdbk and colour
- $colours[$varPdbk] = Linker::getLinkColour( $variantTitle, $threshold );
+ $colours[$varPdbk] = $linkRenderer->getLinkClasses( $variantTitle );
$linkcolour_ids[$s->page_id] = $pdbk;
}
}
* @return string
*/
public function replaceText( $text ) {
-
$text = preg_replace_callback(
'/<!--(LINK|IWLINK) (.*?)-->/',
- [ &$this, 'replaceTextCallback' ],
+ [ $this, 'replaceTextCallback' ],
$text );
return $text;