* Reduce memory usage to reduce the impact of circular references
*/
public function __destruct() {
+ // @phan-suppress-next-line PhanTypeSuspiciousNonTraversableForeach
foreach ( $this as $name => $value ) {
unset( $this->$name );
}
/**
* Replace internal links
+ * @suppress SecurityCheck-XSS Gets confused with $entry['pdbk']
* @param string &$text
*/
protected function replaceInternal( &$text ) {
return;
}
- global $wgContLang;
-
$colours = [];
$linkCache = MediaWikiServices::getInstance()->getLinkCache();
$output = $this->parent->getOutput();
}
if ( count( $linkcolour_ids ) ) {
// pass an array of page_ids to an extension
- Hooks::run( 'GetLinkColours', [ $linkcolour_ids, &$colours ] );
+ Hooks::run( 'GetLinkColours', [ $linkcolour_ids, &$colours, $this->parent->getTitle() ] );
}
# Do a second query for different language variants of links and categories
- if ( $wgContLang->hasVariants() ) {
+ if ( $this->parent->getContentLanguage()->hasVariants() ) {
$this->doVariants( $colours );
}
/**
* Replace interwiki links
* @param string &$text
+ * @suppress SecurityCheck-XSS Gets confused with $this->interwikis['pdbk']
*/
protected function replaceInterwiki( &$text ) {
if ( empty( $this->interwikis ) ) {
* @param array &$colours
*/
protected function doVariants( &$colours ) {
- global $wgContLang;
$linkBatch = new LinkBatch();
$variantMap = []; // maps $pdbkey_Variant => $keys (of link holders)
$output = $this->parent->getOutput();
}
// Now do the conversion and explode string to text of titles
- $titlesAllVariants = $wgContLang->autoConvertToAllVariants( rtrim( $titlesToBeConverted, "\0" ) );
+ $titlesAllVariants = $this->parent->getContentLanguage()->
+ autoConvertToAllVariants( rtrim( $titlesToBeConverted, "\0" ) );
$allVariantsName = array_keys( $titlesAllVariants );
foreach ( $titlesAllVariants as &$titlesVariant ) {
$titlesVariant = explode( "\0", $titlesVariant );
foreach ( $output->getCategoryLinks() as $category ) {
$categoryTitle = Title::makeTitleSafe( NS_CATEGORY, $category );
$linkBatch->addObj( $categoryTitle );
- $variants = $wgContLang->autoConvertToAllVariants( $category );
+ $variants = $this->parent->getContentLanguage()->autoConvertToAllVariants( $category );
foreach ( $variants as $variant ) {
if ( $variant !== $category ) {
$variantTitle = Title::makeTitleSafe( NS_CATEGORY, $variant );
}
}
}
- Hooks::run( 'GetLinkColours', [ $linkcolour_ids, &$colours ] );
+ Hooks::run( 'GetLinkColours', [ $linkcolour_ids, &$colours, $this->parent->getTitle() ] );
// rebuild the categories in original order (if there are replacements)
if ( count( $varCategories ) > 0 ) {
* @private
*/
public function replaceTextCallback( $matches ) {
- $type = $matches[1];
- $key = $matches[2];
+ list( , $type, $key ) = $matches;
if ( $type == 'LINK' ) {
list( $ns, $index ) = explode( ':', $key, 2 );
if ( isset( $this->internals[$ns][$index]['text'] ) ) {