/** * Retrieves the name of the Indexing Queue Configuration for a record * * @param string $recordTable Table to read from * @param int $recordUid Id of the record * @return string Name of indexing configuration */ protected function getIndexingConfigurationName($recordTable, $recordUid) { $name = $recordTable; $indexingConfigurations = $this->solrConfiguration->getEnabledIndexQueueConfigurationNames(); foreach ($indexingConfigurations as $indexingConfigurationName) { if (!$this->solrConfiguration->getIndexQueueConfigurationIsEnabled($indexingConfigurationName)) { // ignore disabled indexing configurations continue; } $tableToIndex = $this->solrConfiguration->getIndexQueueTableNameOrFallbackToConfigurationName($indexingConfigurationName); if ($tableToIndex === $recordTable) { $recordWhereClause = $this->solrConfiguration->getIndexQueueAdditionalWhereClauseByConfigurationName($indexingConfigurationName); $record = BackendUtility::getRecord($recordTable, $recordUid, '*', $recordWhereClause); if (!empty($record)) { // we found a record which matches the conditions $name = $indexingConfigurationName; // FIXME currently returns after the first configuration match break; } } } return $name; }
/** * @test */ public function canGetIndexQueueConfigurationNames() { $fakeConfigurationArray['plugin.']['tx_solr.'] = array('index.' => array('queue.' => array('pages' => 1, 'pages.' => array(), 'custom.' => array('table' => 'tx_model_custom')))); $configuration = new TypoScriptConfiguration($fakeConfigurationArray); $enabledIndexQueueNames = $configuration->getEnabledIndexQueueConfigurationNames(); $this->assertCount(1, $enabledIndexQueueNames, 'Retrieved unexpected amount of index queue configurations'); $this->assertContains('pages', $enabledIndexQueueNames, 'Pages was no enabled index queue configuration'); $fakeConfigurationArray['plugin.']['tx_solr.']['index.']['queue.']['custom'] = 1; $configuration = new TypoScriptConfiguration($fakeConfigurationArray); $enabledIndexQueueNames = $configuration->getEnabledIndexQueueConfigurationNames(); $this->assertCount(2, $enabledIndexQueueNames, 'Retrieved unexpected amount of index queue configurations'); $this->assertContains('custom', $enabledIndexQueueNames, 'Pages was no enabled index queue configuration'); }