[BUGFIX] Incorrect search-results when searching for part of word
authorTymoteusz Motylewski <t.motylewski@gmail.com>
Fri, 27 Jul 2012 21:17:47 +0000 (23:17 +0200)
committerChristian Kuhn <lolli@schwarzbu.ch>
Mon, 6 Aug 2012 17:05:09 +0000 (19:05 +0200)
Added missing 'self::' before constants. Now search will also find
matches for parts of words.

Credit goes to Mats Svensson and Andreas Kiessling for spotting
the issue and providing patch.

Change-Id: Iddb3a6e10406895a69010b67ddb8b07066229a62
Fixes: #38548
Releases: 4.7, 6.0
Reviewed-on: http://review.typo3.org/13215
Reviewed-by: Oliver Salzburg
Tested-by: Oliver Salzburg
Reviewed-by: Oliver Klee
Reviewed-by: Wouter Wolters
Reviewed-by: Georg Ringer
Tested-by: Georg Ringer
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
typo3/sysext/indexed_search/Classes/Domain/Repository/IndexSearchRepository.php
typo3/sysext/indexed_search/pi/class.tx_indexedsearch.php

index 051a781..834e6cf 100644 (file)
@@ -420,8 +420,8 @@ class Tx_IndexedSearch_Domain_Repository_IndexSearchRepository {
         * @return      pointer         SQL result pointer
         */
        protected function searchWord($sWord, $mode) {
-               $wildcard_left = ($mode & WILDCARD_LEFT) ? '%' : '';
-               $wildcard_right = ($mode & WILDCARD_RIGHT) ? '%' : '';
+               $wildcard_left = ($mode & self::WILDCARD_LEFT) ? '%' : '';
+               $wildcard_right = ($mode & self::WILDCARD_RIGHT) ? '%' : '';
 
                $wSel = 'IW.baseword LIKE \'' . $wildcard_left . $GLOBALS['TYPO3_DB']->quoteStr($sWord, 'index_words') . $wildcard_right . '\'';
                $res = $this->execPHashListQuery($wSel, ' AND is_stopword=0');
index d0a4846..0d4daf6 100755 (executable)
@@ -914,8 +914,8 @@ class tx_indexedsearch extends tslib_pibase {
         * @return pointer SQL result pointer
         */
        function searchWord($sWord, $mode) {
-               $wildcard_left = ($mode & WILDCARD_LEFT) ? '%' : '';
-               $wildcard_right = ($mode & WILDCARD_RIGHT) ? '%' : '';
+               $wildcard_left = ($mode & self::WILDCARD_LEFT) ? '%' : '';
+               $wildcard_right = ($mode & self::WILDCARD_RIGHT) ? '%' : '';
 
                $wSel = 'IW.baseword LIKE \'' . $wildcard_left.$GLOBALS['TYPO3_DB']->quoteStr($sWord, 'index_words') . $wildcard_right . '\'';
                $res = $this->execPHashListQuery($wSel, ' AND is_stopword=0');