function lightning_search_node_type_insert in Lightning Core 8.4
Same name and namespace in other branches
- 8.5 modules/lightning_search/lightning_search.module \lightning_search_node_type_insert()
- 8 modules/lightning_search/lightning_search.module \lightning_search_node_type_insert()
- 8.2 modules/lightning_search/lightning_search.module \lightning_search_node_type_insert()
- 8.3 modules/lightning_search/lightning_search.module \lightning_search_node_type_insert()
Implements hook_ENTITY_TYPE_insert().
1 string reference to 'lightning_search_node_type_insert'
- lightning_search_install in modules/
lightning_search/ lightning_search.install - Implements hook_install().
File
- modules/
lightning_search/ lightning_search.module, line 17 - Contains Search API integration for Lightning.
Code
function lightning_search_node_type_insert(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;
}
/** @var \Drupal\lightning_core\DisplayHelper $display_helper */
$display_helper = \Drupal::service('lightning.display_helper');
$field = $index
->getField('rendered');
if ($field) {
$configuration = $field
->getConfiguration();
$configuration['view_mode']['entity:node'][$type] = $display_helper
->getPreferredMode('node', $type, [
'search_index',
'full',
]);
$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') {
$display['display_options']['row']['options']['view_modes']['entity:node'][$type] = $display_helper
->getPreferredMode('node', $type, [
'search_result',
'teaser',
]);
$view
->save();
}
}