function search_api_solr_multilingual_requirements in Search API Multilingual Solr Search 8
Implements hook_requirements().
File
- ./
search_api_solr_multilingual.install, line 11 - Install, update, and uninstall functions for Search API Multilingual Solr.
Code
function search_api_solr_multilingual_requirements($phase) {
$requirements = [];
if ($phase == 'runtime') {
$storage = \Drupal::entityTypeManager()
->getStorage('search_api_server');
/** @var \Drupal\search_api\ServerInterface[] $servers */
if ($servers = $storage
->loadByProperties([
'backend' => 'search_api_solr_multilingual',
])) {
foreach ($servers as $server) {
$key = 'search_api_solr_multilingual_' . $server
->id();
$requirements[$key] = [
'title' => t('Multilingual Solr Server'),
'value' => t('Schema complete'),
'severity' => REQUIREMENT_OK,
'description' => t('Schema on server <a href=":url">@server</a> contains all required language-specific fields.', [
':url' => $server
->toUrl('canonical')
->toString(),
'@server' => $server
->label(),
]),
];
/** @var \Drupal\search_api_solr_multilingual\SolrMultilingualBackendInterface $backend */
$backend = $server
->getBackend();
if ($backend
->isAvailable()) {
$stats = $backend
->getSchemaLanguageStatistics();
if ($missing_languages = array_filter($stats, function ($state) {
return !$state;
})) {
$requirements[$key]['value'] = t('Schema incomplete');
$requirements[$key]['severity'] = $backend
->hasLanguageUndefinedFallback() ? REQUIREMENT_WARNING : REQUIREMENT_ERROR;
$requirements[$key]['description'] = t('There are some language-specific field types missing in schema of Solr server <a href=":url">@server</a>: @languages.', [
':url' => $server
->toUrl('canonical')
->toString(),
'@server' => $server
->label(),
'@languages' => implode(', ', array_keys($missing_languages)),
]);
}
}
else {
$requirements[$key]['value'] = t('Not reachable');
$requirements[$key]['severity'] = REQUIREMENT_ERROR;
$requirements[$key]['description'] = t('Solr server <a href=":url">@server</a> is not reachable.', [
':url' => $server
->toUrl('canonical')
->toString(),
'@server' => $server
->label(),
]);
}
}
}
}
return $requirements;
}