This adds a new indexer configuration type to the ke_search extension.
With this configuration fluidcontent elements can be indexed.
| Description | ke_search Indexer for fluidcontent (2017: this is replaced by: https://github.com/BenjaminBeck/bdm_kesearchindexer_flux ) |
| Author | BenjaminBeck |
| Creation date | 2015-03-21T13:59:32.000Z |
| Extensions |
|
| Tags |
|
| Files |
| $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['ke_search']['registerIndexerConfiguration'][] = 'BDM\\BdmThemeBootstrap\\Hooks\\KeSearch\\RegisterIndexerFluidcontent'; | |
| $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['ke_search']['customIndexer'][] = 'BDM\\BdmThemeBootstrap\\Hooks\\KeSearch\\RegisterIndexerFluidcontent'; |
| // enable: | |
| $GLOBALS['TCA']['tx_kesearch_indexerconfig']['columns']['startingpoints_recursive']['displayCond'] .= ','.\BDM\BdmThemeBootstrap\Hooks\KeSearch\RegisterIndexerFluidcontent::$indexerType; | |
| // disable: | |
| $GLOBALS['TCA']['tx_kesearch_indexerconfig']['columns']['targetpid']['displayCond'] = ','.\BDM\BdmThemeBootstrap\Hooks\KeSearch\RegisterIndexerFluidcontent::$indexerType; |
| <?php | |
| namespace BDM\BdmThemeBootstrap\Hooks\KeSearch; | |
| use TYPO3\CMS\Core\Utility\GeneralUtility; | |
| /** | |
| * | |
| */ | |
| class RegisterIndexerFluidcontent { | |
| /** | |
| * objectManager | |
| * | |
| * @var \TYPO3\CMS\Extbase\Object\ObjectManagerInterface | |
| */ | |
| public $objectManager; | |
| /** | |
| * Custom indexer for ke_search | |
| * | |
| * @param array $params | |
| * @param array $pObj | |
| * | |
| * @return void. | |
| * @author Benjamin Beck <[email protected]> | |
| */ | |
| public static $indexerType = 'fluidcontent'; | |
| function registerIndexerConfiguration (&$params, $pObj) { | |
| // add item to "type" field | |
| $newArray = array( | |
| 'Indexer for fluidcontent elements', | |
| self::$indexerType, | |
| \t3lib_extMgm::extRelPath( 'bdm_theme_bootstrap' ) . 'customnews-indexer-icon.gif' | |
| ); | |
| $params['items'][] = $newArray; | |
| } | |
| /** | |
| * Custom indexer for ke_search | |
| * | |
| * @param array $indexerConfig Configuration from TYPO3 Backend | |
| * @param array $indexerObject Reference to indexer class. | |
| * | |
| * @return string Output. | |
| * @author Benjamin Beck <[email protected]> | |
| */ | |
| public function customIndexer (&$indexerConfig, &$indexerObject) { | |
| $this->objectManager = GeneralUtility::makeInstance( '\TYPO3\CMS\Extbase\Object\ObjectManager' ); | |
| // $custom_indexer = new \custom_indexer($indexerObject); | |
| $indexer = $this->objectManager->get('\BDM\BdmThemeBootstrap\KeSearchIndexer\TypesFluidcontent', $indexerObject); | |
| return $indexer->startIndexing(); | |
| } | |
| } | |
| <?php | |
| namespace BDM\BdmThemeBootstrap\KeSearchIndexer; | |
| use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; | |
| require_once ( ExtensionManagementUtility::extPath( 'ke_search' ).'Classes/indexer/types/class.tx_kesearch_indexer_types_tt_content.php'); | |
| class TypesFluidcontent extends \tx_kesearch_indexer_types_tt_content{ | |
| var $indexCTypes = array( | |
| 'fluidcontent_content' | |
| ); | |
| public function getContentFromContentElement($ttContentRow) { | |
| $flexform = $ttContentRow['pi_flexform']; | |
| $flexform = strip_tags($flexform); | |
| $flexform = html_entity_decode($flexform); | |
| $flexform = strip_tags($flexform); | |
| $flexform = preg_replace('/\s\s+/', ' ', $flexform); | |
| $content = $ttContentRow['subheader'] . " " .$flexform; | |
| $content .= parent::getContentFromContentElement($ttContentRow); | |
| return $content; | |
| } | |
| } |