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';