function lightning_search_node_type_delete in Lightning Core 8.4
Same name and namespace in other branches
- 8.5 modules/lightning_search/lightning_search.module \lightning_search_node_type_delete()
- 8 modules/lightning_search/lightning_search.module \lightning_search_node_type_delete()
- 8.2 modules/lightning_search/lightning_search.module \lightning_search_node_type_delete()
- 8.3 modules/lightning_search/lightning_search.module \lightning_search_node_type_delete()
Implements hook_ENTITY_TYPE_delete().
File
- modules/
lightning_search/ lightning_search.module, line 59 - Contains Search API integration for Lightning.
Code
function lightning_search_node_type_delete(NodeTypeInterface $node_type) {
// Don't do anything during config sync.
if (\Drupal::isConfigSyncing()) {
return;
}
$type = $node_type
->id();
// No point in continuing without an index to configure.
/** @var \Drupal\search_api\IndexInterface $index */
$index = Index::load('content');
if (empty($index)) {
return;
}
$field = $index
->getField('rendered');
if ($field) {
$configuration = $field
->getConfiguration();
unset($configuration['view_mode']['entity:node'][$type]);
$field
->setConfiguration($configuration);
$index
->save();
}
/** @var \Drupal\views\ViewEntityInterface $view */
$view = View::load('search');
if (empty($view)) {
return;
}
$display =& $view
->getDisplay('default');
if ($display['display_options']['row']['type'] == 'search_api') {
unset($display['display_options']['row']['options']['view_modes']['entity:node'][$type]);
$view
->save();
}
}