/** * Calendarize indexer for ke_search * * @param array $indexerConfig Configuration from TYPO3 Backend * @param \tx_kesearch_indexer $indexerObject Reference to indexer class. * @return string|null */ public function customIndexer(&$indexerConfig, &$indexerObject) { if ($indexerConfig['type'] !== 'calendarize') { return null; } /** @var \HDNET\Calendarize\Domain\Repository\IndexRepository $indexRepository */ $indexRepository = HelperUtility::create('HDNET\\Calendarize\\Domain\\Repository\\IndexRepository'); // @todo select only $indexerConfig['storagepid'] $indexObjects = $indexRepository->findList()->toArray(); foreach ($indexObjects as $index) { /** @var $index Index */ /** @var KeSearchIndexInterface $originalObject */ $originalObject = $index->getOriginalObject(); if (!$originalObject instanceof KeSearchIndexInterface) { continue; } $title = strip_tags($originalObject->getKeSearchTitle($index)); $abstract = strip_tags($originalObject->getKeSearchAbstract($index)); $content = strip_tags($originalObject->getKeSearchContent($index)); $fullContent = $title . "\n" . $abstract . "\n" . $content; // @todo Add year and month information $additionalFields = []; $indexerObject->storeInIndex($indexerConfig['storagepid'], $title, 'calendarize', $indexerConfig['targetpid'], $fullContent, '', '&tx_calendarize_calendar[index]=' . $index->getUid(), $abstract, 0, 0, 0, '', false, $additionalFields); } return '<p><b>Custom Indexer "' . $indexerConfig['title'] . '": ' . sizeof($indexObjects) . ' elements have been indexed.</b></p>'; }
/** * Test additional query parts for additional fields * @test */ public function getTagTest() { $fields = 'uid, title, tag'; $table = 'tx_kesearch_filteroptions'; $where = '1=1 '; $where .= t3lib_befunc::BEenableFields($table, 0); $where .= t3lib_befunc::deleteClause($table, 0); $row = $GLOBALS['TYPO3_DB']->exec_SELECTgetSingleRow($fields, $table, $where); if (is_array($row) && count($row)) { $return = $this->indexer->getTag($row['uid'], false); $this->assertEquals($row['tag'], $return); $return = $this->indexer->getTag($row['uid'], true); $this->assertEquals($row['title'], $return); } }