Exemplo n.º 1
0
 /**
  * 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);
     }
 }