public function SolrFieldTypeListBuilder::getSolrconfigExtraXml in Search API Solr 8.3
Same name and namespace in other branches
- 8.2 src/Controller/SolrFieldTypeListBuilder.php \Drupal\search_api_solr\Controller\SolrFieldTypeListBuilder::getSolrconfigExtraXml()
- 4.x src/Controller/SolrFieldTypeListBuilder.php \Drupal\search_api_solr\Controller\SolrFieldTypeListBuilder::getSolrconfigExtraXml()
Returns the formatted XML for solrconfig_extra.xml.
Throws
\Drupal\search_api\SearchApiException
File
- src/
Controller/ SolrFieldTypeListBuilder.php, line 294
Class
- SolrFieldTypeListBuilder
- Provides a listing of SolrFieldType.
Namespace
Drupal\search_api_solr\ControllerCode
public function getSolrconfigExtraXml() {
$search_components = [];
/** @var \Drupal\search_api_solr\SolrFieldTypeInterface $solr_field_type */
foreach ($this
->getEnabledEntities() as $solr_field_type) {
$xml = $solr_field_type
->getSolrConfigsAsXml();
if (preg_match_all('@(<searchComponent name="[^"]+"[^>]*?>)(.*?)</searchComponent>@sm', $xml, $matches)) {
foreach ($matches[1] as $key => $search_component) {
$search_components[$search_component][] = $matches[2][$key];
}
}
}
$xml = '';
foreach ($search_components as $search_component => $details) {
$xml .= $search_component;
foreach ($details as $detail) {
$xml .= $detail;
}
$xml .= "</searchComponent>\n";
}
return $xml;
}