Fixed bug #1436: Meta tag output in indexed search result breaks layout
authorDmitry Dulepov <dmitry.dulepov@gmail.com>
Mon, 29 Mar 2010 12:39:07 +0000 (12:39 +0000)
committerDmitry Dulepov <dmitry.dulepov@gmail.com>
Mon, 29 Mar 2010 12:39:07 +0000 (12:39 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/branches/TYPO3_4-2@7222 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/indexed_search/class.indexer.php

index d5ec73f..74a3d24 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,7 @@
 
        * Fixed bug #11696: External files with Umlauts/special chars in filename are not indexed
        * Fixed bug #12375: typo3temp got filled with thousands of EXTERNAL_URL* files
+       * Fixed bug #1436: Meta tag output in indexed search result breaks layout
 
 2010-03-26  Ernesto Baschny  <ernst@cron-it.de>
 
index e7e9088..382231f 100755 (executable)
@@ -629,8 +629,12 @@ class tx_indexedsearch_indexer {
                        for($i=0;$this->embracingTags($headPart,'meta',$dummy,$headPart,$meta[$i]);$i++) { /*nothing*/ }
                        for($i=0;isset($meta[$i]);$i++) {
                                $meta[$i] = t3lib_div::get_tag_attributes($meta[$i]);
-                               if(stristr($meta[$i]['name'],'keywords')) $contentArr['keywords'].=','.$meta[$i]['content'];
-                               if(stristr($meta[$i]['name'],'description')) $contentArr['description'].=','.$meta[$i]['content'];
+                               if (stristr($meta[$i]['name'], 'keywords')) {
+                                       $contentArr['keywords'] .= ',' . $this->addSpacesToKeywordList($meta[$i]['content']);
+                               }
+                               if (stristr($meta[$i]['name'], 'description')) {
+                                       $contentArr['description'] .= ',' . $meta[$i]['content'];
+                               }
                        }
                }
 
@@ -2086,6 +2090,19 @@ class tx_indexedsearch_indexer {
                        $params['disableAcquireCacheData'] = TRUE;
                }
        }
+
+       /**
+        * Makes sure that keywords are space-separated. This is impotant for their
+        * proper displaying as a part of fulltext index.
+        *
+        * @param string $keywordList
+        * @return string
+        * @see http://bugs.typo3.org/view.php?id=1436
+        */
+       protected function addSpacesToKeywordList($keywordList) {
+               $keywords = t3lib_div::trimExplode(',', $keywordList);
+               return ' ' . implode(', ', $keywords) . ' ';
+       }
 }