From 6f5696eb9dbb61e37fc79ecf60aa84026daacacf Mon Sep 17 00:00:00 2001 From: Daniel Kraus Date: Wed, 30 Nov 2016 06:09:11 +0100 Subject: [PATCH 1/2] Suppress second pass if $wgLinkTitlesFirstOnly is true. - Fix: Do not link titles twice if $wgLinkTitlesFirstOnly and $wgLinkTitlesSmartMode are both true. Closes #12. --- includes/LinkTitles_Extension.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/includes/LinkTitles_Extension.php b/includes/LinkTitles_Extension.php index 40fa6c4..9883d91 100644 --- a/includes/LinkTitles_Extension.php +++ b/includes/LinkTitles_Extension.php @@ -123,6 +123,8 @@ class Extension { ( $wgLinkTitlesPreferShortTitles ) ? $sort_order = 'ASC' : $sort_order = 'DESC'; ( $wgLinkTitlesFirstOnly ) ? $limit = 1 : $limit = -1; + $limitReached = false; + error_log($wgLinkTitlesFirstOnly); self::$currentTitle = $title; $newText = $text; @@ -214,7 +216,8 @@ class Extension { // even indexes will point to text that is not enclosed by brackets $arr[$i] = preg_replace_callback( $regex, 'LinkTitles\Extension::simpleModeCallback', $arr[$i], $limit, $count ); - if (( $limit >= 0 ) && ( $count > 0 )) { + if ( $wgLinkTitlesFirstOnly && ( $count > 0 ) ) { + $limitReached = true; break; }; }; @@ -223,7 +226,7 @@ class Extension { // If smart mode is turned on, the extension will perform a second // pass on the page and add links with aliases where the case does // not match. - if ($wgLinkTitlesSmartMode) { + if ( $wgLinkTitlesSmartMode && !$limitReached ) { $arr = preg_split( self::$delimiter, $newText, -1, PREG_SPLIT_DELIM_CAPTURE ); for ( $i = 0; $i < count( $arr ); $i+=2 ) { @@ -232,7 +235,7 @@ class Extension { self::$wordStartDelim . '(' . $quotedTitle . ')' . self::$wordEndDelim . '/iS', 'LinkTitles\Extension::smartModeCallback', $arr[$i], $limit, $count ); - if (( $limit >= 0 ) && ( $count > 0 )) { + if ( $wgLinkTitlesFirstOnly && ( $count > 0 )) { break; }; }; From 6c4db6df5a7b52523d7f0ea4052aef00d05a7699 Mon Sep 17 00:00:00 2001 From: Daniel Kraus Date: Wed, 30 Nov 2016 06:11:29 +0100 Subject: [PATCH 2/2] Bump version, write history. --- NEWS | 8 ++++++++ extension.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index d8e3fd2..8930b54 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,11 @@ +Version 4.0.4 (2016-11-30) +------------------------------------------------------------------------ + +- Fix: Do not link titles twice if $wgLinkTitlesFirstOnly and $wgLinkTitlesSmartMode are both true. + +* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + + Version 4.0.3 (2016-11-22) ------------------------------------------------------------------------ diff --git a/extension.json b/extension.json index f68891e..907f8d8 100644 --- a/extension.json +++ b/extension.json @@ -6,7 +6,7 @@ ], "type": "parserhook", "url": "https://www.mediawiki.org/wiki/Extension:LinkTitles", - "version": "4.0.3", + "version": "4.0.4", "license-name": "GPL-2.0+", "descriptionmsg": "linktitles-desc", "requires": {