From a2850bb31841ad3a4b444662190eaf161f4f99bd Mon Sep 17 00:00:00 2001 From: Daniel Kraus Date: Tue, 11 Dec 2012 16:34:51 +0100 Subject: [PATCH] Introduce new option to link only the first occurrence of a title on a page. --- LinkTitles.body.php | 8 ++++++-- LinkTitles.php | 3 ++- NEWS | 3 +++ release/LinkTitles-1.5.0.tar.gz | Bin 0 -> 10337 bytes 4 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 release/LinkTitles-1.5.0.tar.gz diff --git a/LinkTitles.body.php b/LinkTitles.body.php index 63d8b32..79b22ed 100755 --- a/LinkTitles.body.php +++ b/LinkTitles.body.php @@ -76,12 +76,14 @@ global $wgLinkTitlesParseHeadings; global $wgLinkTitlesBlackList; global $wgLinkTitlesSkipTemplates; + global $wgLinkTitlesFirstOnly; // To prevent adding self-references, we now // extract the current page's title. $myTitle = $article->getTitle()->getText(); ( $wgLinkTitlesPreferShortTitles ) ? $sort_order = 'ASC' : $sort_order = 'DESC'; + ( $wgLinkTitlesFirstOnly ) ? $limit = 1 : $limit = -1; if ( $wgLinkTitlesSkipTemplates ) { @@ -137,9 +139,11 @@ $arr = preg_split( $delimiter, $text, -1, PREG_SPLIT_DELIM_CAPTURE ); // dump( $arr ); $safeTitle = str_replace( '/', '\/', $title ); - for ( $i = 0; $i < count( $arr ); $i+=2 ) { + ( $wgLinkTitlesFirstOnly ) ? $loopLimit = 1 : $loopLimit = count( $arr ); + for ( $i = 0; $i < $loopLimit; $i+=2 ) { // even indexes will point to text that is not enclosed by brackets - $arr[$i] = preg_replace( '/(? __FILE__, 'name' => 'LinkTitles', 'author' => '[http://www.mediawiki.org/wiki/User:Bovender Daniel Kraus]', 'url' => 'http://www.mediawiki.org/wiki/Extension:LinkTitles', - 'version' => '1.4.0', + 'version' => '1.5.0', 'descriptionmsg' => 'linktitles-desc' ); diff --git a/NEWS b/NEWS index 06401ed..8ccf705 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,6 @@ +LinkTitles 1.5.0: 2012-12-11 +* Added new option to link only the first occurrence of a page title. + LinkTitles 1.4.0: 2012-10-09 * Added new option to skip template variables. diff --git a/release/LinkTitles-1.5.0.tar.gz b/release/LinkTitles-1.5.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..f4d5b89ed0617dca081ee4b7453b4993f16e836c GIT binary patch literal 10337 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 literal 0 HcmV?d00001