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

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

index 4dec511..622584c 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,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 #12254: Double wrap of rules subpart with template_css.tmpl (indexed_search)
+       * Fixed bug #1436: Meta tag output in indexed search result breaks layout
 
 2010-03-28  Ernesto Baschny  <ernst@cron-it.de>
 
index b8245fa..46a6cef 100755 (executable)
@@ -624,8 +624,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'];
+                               }
                        }
                }
 
@@ -2088,6 +2092,19 @@ class tx_indexedsearch_indexer {
                require_once t3lib_extMgm::extPath('indexed_search') . 'hooks/class.tx_indexedsearch_tslib_fe_hook.php';
                t3lib_div::makeInstance('tx_indexedsearch_tslib_fe_hook')->headerNoCache($params, $ref);
        }
+
+       /**
+        * 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) . ' ';
+       }
 }