[+BUGFIX] Fixed a bug where the short terms are in favour to be replaced copmpared...
authorjocrau <jocrau@735d13b6-9817-0410-8766-e36946ffe9aa>
Tue, 9 Mar 2010 08:40:40 +0000 (08:40 +0000)
committerBastian Bringenberg <spam@bastian-bringenberg.de>
Thu, 4 Dec 2014 23:56:08 +0000 (00:56 +0100)
git-svn-id: https://svn.typo3.org/TYPO3v4/Extensions/contagged/trunk@30897 735d13b6-9817-0410-8766-e36946ffe9aa

ChangeLog
class.tx_contagged.php

index 70b1825..13f9810 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 v1.6.2 2010-03-09 Jochen Rau <jochen.rau@typoplanet.de>
 
        [+BUGFIX] Re-enabled support for non non-UTF-8 sites in main RegEx.
+       [+BUGFIX] Fixed a bug where the short terms are in favour to be replaced copmpared to longer terms with the same beginning.
        
 v1.6.1 2010-03-09 Jochen Rau <jochen.rau@typoplanet.de>
 
index cdd4437..57eeb64 100644 (file)
@@ -92,6 +92,9 @@ class tx_contagged extends tslib_pibase {
                                }
                        }
                }
+               
+               // sort the array descending by length of the value, so the longest term will match
+               usort($sortedTerms,array($this,'sortArrayByLengthDescending'));
 
                // get a comma separated list of all tags which should be omitted
                $tagsToOmitt = $this->getTagsToOmitt();
@@ -122,6 +125,13 @@ class tx_contagged extends tslib_pibase {
 
                return $parsedContent;
        }
+
+       function sortArrayByLengthDescending($a,$b) {
+               if (strlen($a['term'])==strlen($b['term'])) {
+                       return 0;
+               }
+               return strlen($a['term'])<strlen($b['term']) ? 1 : -1;
+       }
        
        function getPositions($content,&$positionsArray,$term,$termKey) {
                $termArray = $this->termsArray[$termKey];