public function SolrFieldTypeListBuilder::getConfigFiles in Search API Solr 8.2
Return value
array
Throws
\Drupal\search_api\SearchApiException
1 call to SolrFieldTypeListBuilder::getConfigFiles()
- SolrFieldTypeListBuilder::getConfigZip in src/
Controller/ SolrFieldTypeListBuilder.php
File
- src/
Controller/ SolrFieldTypeListBuilder.php, line 278
Class
- SolrFieldTypeListBuilder
- Provides a listing of SolrFieldType.
Namespace
Drupal\search_api_solr\ControllerCode
public function getConfigFiles() {
/** @var \Drupal\search_api_solr\SolrBackendInterface $backend */
$backend = $this
->getBackend();
$connector = $backend
->getSolrConnector();
$solr_branch = $connector
->getSolrBranch($this->assumed_minimum_version);
$search_api_solr_conf_path = drupal_get_path('module', 'search_api_solr') . '/solr-conf/' . $solr_branch;
$solrcore_properties = parse_ini_file($search_api_solr_conf_path . '/solrcore.properties', FALSE, INI_SCANNER_RAW);
$files = [
'schema_extra_types.xml' => $this
->getSchemaExtraTypesXml(),
'schema_extra_fields.xml' => $this
->getSchemaExtraFieldsXml(),
'solrconfig_extra.xml' => $this
->getSolrconfigExtraXml(),
];
// Add language specific text files.
$solr_field_types = $this
->load();
/** @var \Drupal\search_api_solr\SolrFieldTypeInterface $solr_field_type */
foreach ($solr_field_types as $solr_field_type) {
$text_files = $solr_field_type
->getTextFiles();
foreach ($text_files as $text_file_name => $text_file) {
$text_file_name = Utility::completeTextFileName($text_file_name, $solr_field_type);
$files[$text_file_name] = $text_file;
$solrcore_properties['solr.replication.confFiles'] .= ',' . $text_file_name;
}
}
$solrcore_properties['solr.luceneMatchVersion'] = $connector
->getLuceneMatchVersion($this->assumed_minimum_version ?: '');
// @todo
// $solrcore_properties['solr.replication.masterUrl']
$solrcore_properties_string = '';
foreach ($solrcore_properties as $property => $value) {
$solrcore_properties_string .= $property . '=' . $value . "\n";
}
$files['solrcore.properties'] = $solrcore_properties_string;
// Now add all remaining static files from the conf dir that have not been
// generated dynamically above.
foreach (scandir($search_api_solr_conf_path) as $file) {
if (strpos($file, '.') !== 0) {
foreach (array_keys($files) as $existing_file) {
if ($file == $existing_file) {
continue 2;
}
}
$files[$file] = file_get_contents($search_api_solr_conf_path . '/' . $file);
}
}
$connector
->alterConfigFiles($files, $solrcore_properties['solr.luceneMatchVersion'], $this->serverId);
$this->moduleHandler
->alter('search_api_solr_config_files', $files, $solrcore_properties['solr.luceneMatchVersion'], $this->serverId);
return $files;
}