Möchte man den Untertitel (subtitle) statt des Titels (title) in den Suchergebnissen der indexed_search TYPO3 Extension verwenden, so kann man nicht einfach ###TITLE### durch ###SUBTITLE### ersetzen. Das funktioniert leider nicht. Ich habe dieses Problem gelöst, in dem ich den Hook „prepareResultRowTemplateData_postProc“ verwendet habe. Hier die Hook Klasse (class.pihook.php):
<?php class tx_indexedsearch_pihook { var $pObj; function prepareResultRowTemplateData_postProc($tmplContent, $row, $headerOnly) { $subtitle = ''; if ($GLOBALS['TSFE']->sys_language_uid > 0) { $result = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("subtitle", "pages_language_overlay", " sys_language_uid = ".$GLOBALS['TYPO3_DB']->quoteStr($GLOBALS['TSFE']->sys_language_uid, 'pages_language_overlay')." AND pid = ".$GLOBALS['TYPO3_DB']->quoteStr($row['page_id'], 'pages_language_overlay')." ".$this->pObj->cObj->enableFields('pages_language_overlay')); $subtitle = $result[0]['subtitle']; } else { $result = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("subtitle", "pages", " uid = ".$GLOBALS['TYPO3_DB']->quoteStr($row['page_id'], 'pages')." ".$this->pObj->cObj->enableFields('pages')); $subtitle = $result[0]['subtitle']; } if (strlen(trim($subtitle)) > 0) $tmplContent['SUBTITLEIFSET'] = str_replace($row['item_title'], $subtitle, $tmplContent['title']); else $tmplContent['SUBTITLEIFSET'] = $tmplContent['title']; return $tmplContent; } } ?>
Der Hook selbst muss dann in einer ext_localconf.php registriert werden:
$TYPO3_CONF_VARS['EXTCONF']['indexed_search']['pi1_hooks']['prepareResultRowTemplateData_postProc'] = 'fileadmin/class.pihook.php:&tx_indexedsearch_pihook';