Commit fd565007 authored by catch's avatar catch
Browse files

Issue #3209139 by guilhermevp, andypost, jhodgdon: Create helper function for...

Issue #3209139 by guilhermevp, andypost, jhodgdon: Create helper function for help_topics_modules_installed()
parent 9db502ce
......@@ -60,45 +60,52 @@ function help_topics_theme() {
* Implements hook_modules_uninstalled().
*/
function help_topics_modules_uninstalled(array $modules) {
// Early return if search is not installed or if we're uninstalling this
// module.
if (!\Drupal::hasService('plugin.manager.search') ||
in_array('help_topics', $modules)) {
return;
}
$search_plugin_manager = \Drupal::service('plugin.manager.search');
if ($search_plugin_manager->hasDefinition('help_search')) {
// Ensure that topics for extensions that have been uninstalled are removed
// and that the index state variable is updated.
$help_search = $search_plugin_manager->createInstance('help_search');
$help_search->updateTopicList();
$help_search->updateIndexState();
}
_help_topics_search_update($modules);
}
/**
* Implements hook_themes_uninstalled().
*/
function help_topics_themes_uninstalled(array $themes) {
// Use the same code as module uninstall to ensure that theme help is removed
// when a theme is uninstalled.
help_topics_modules_uninstalled([]);
_help_topics_search_update();
}
/**
* Implements hook_modules_installed().
*/
function help_topics_modules_installed(array $modules, $is_syncing) {
// Use the same code as module uninstall to ensure that index state is
// updated when a module is installed.
help_topics_modules_uninstalled([]);
_help_topics_search_update();
}
/**
* Implements hook_themes_installed().
*/
function help_topics_themes_installed(array $themes) {
// Use the same code as module uninstall to ensure that index state is
// updated when a theme is installed.
help_topics_modules_uninstalled([]);
_help_topics_search_update();
}
/**
* Ensure that search is updated when extensions are installed or uninstalled.
*
* @param string[] $extensions
* (optional) If modules are being uninstalled, the names of the modules
* being uninstalled. For themes being installed/uninstalled, or modules
* being installed, omit this parameter.
*/
function _help_topics_search_update(array $extensions = []): void {
// Early return if search is not installed or if we're uninstalling this
// module.
if (!\Drupal::hasService('plugin.manager.search') ||
in_array('help_topics', $extensions)) {
return;
}
$search_plugin_manager = \Drupal::service('plugin.manager.search');
if ($search_plugin_manager->hasDefinition('help_search')) {
// Ensure that topics for extensions that have been uninstalled are removed
// and that the index state variable is updated.
$help_search = $search_plugin_manager->createInstance('help_search');
$help_search->updateTopicList();
$help_search->updateIndexState();
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment