function varbase_seo_install in Varbase SEO 8.6
Same name and namespace in other branches
- 8.4 varbase_seo.install \varbase_seo_install()
- 8.5 varbase_seo.install \varbase_seo_install()
- 9.0.x varbase_seo.install \varbase_seo_install()
Implements hook_install().
File
- ./
varbase_seo.install, line 16 - Install, update and uninstall functions for the Varbase SEO module.
Code
function varbase_seo_install() {
$module_name = preg_replace('/_install$/', '', __FUNCTION__);
$module_path = Drupal::service('module_handler')
->getModule($module_name)
->getPath();
// Processer for install: in [$module_name].info.yml file.
// ---------------------------------------------------------------------------.
$module_info_file = $module_path . '/' . $module_name . '.info.yml';
if (file_exists($module_info_file)) {
$module_info_data = (array) Yaml::parse(file_get_contents($module_info_file));
if (isset($module_info_data['install']) && is_array($module_info_data['install'])) {
\Drupal::service('module_installer')
->install($module_info_data['install'], TRUE);
}
}
// Install optional configs.
$optional_install_path = $module_path . '/' . InstallStorage::CONFIG_OPTIONAL_DIRECTORY;
if (is_dir($optional_install_path)) {
$config_installer = \Drupal::service('config.installer');
$config_installer
->installDefaultConfig('module', $module_name);
// Create field storage configs first in active config.
$storage_config_files = \Drupal::service('file_system')
->scanDirectory($optional_install_path, '/^field.storage.*\\.(yml)$/i');
if (isset($storage_config_files) && is_array($storage_config_files)) {
foreach ($storage_config_files as $storage_config_file) {
$storage_config_file_content = file_get_contents(DRUPAL_ROOT . '/' . $storage_config_file->uri);
$storage_config_file_data = (array) Yaml::parse($storage_config_file_content);
$config_factory = \Drupal::configFactory()
->getEditable($storage_config_file->name);
$config_factory
->setData($storage_config_file_data)
->save(TRUE);
}
}
// Install any optional config the module provides.
$storage = new FileStorage($optional_install_path, StorageInterface::DEFAULT_COLLECTION);
$config_installer
->installOptionalConfig($storage, '');
// Have the .settings.yml configs into the active config.
$settings_config_files = \Drupal::service('file_system')
->scanDirectory($optional_install_path, '/^.*\\.(settings.yml)$/i');
if (isset($settings_config_files) && is_array($settings_config_files)) {
foreach ($settings_config_files as $settings_config_file) {
$settings_config_file_content = file_get_contents(DRUPAL_ROOT . '/' . $settings_config_file->uri);
$settings_config_file_data = (array) Yaml::parse($settings_config_file_content);
$config_factory = \Drupal::configFactory()
->getEditable($settings_config_file->name);
$config_factory
->setData($settings_config_file_data)
->save(TRUE);
}
}
// Have general metatag defaults configs in active config.
$metatag_defaults_config_files = \Drupal::service('file_system')
->scanDirectory($optional_install_path, '/^metatag.metatag_defaults.*\\.(yml)$/i');
if (isset($metatag_defaults_config_files) && is_array($metatag_defaults_config_files)) {
foreach ($metatag_defaults_config_files as $metatag_defaults_config_file) {
$metatag_defaults_config_file_content = file_get_contents(DRUPAL_ROOT . '/' . $metatag_defaults_config_file->uri);
$metatag_defaults_config_file_data = (array) Yaml::parse($metatag_defaults_config_file_content);
$config_factory = \Drupal::configFactory()
->getEditable($metatag_defaults_config_file->name);
$config_factory
->setData($metatag_defaults_config_file_data)
->save(TRUE);
}
}
}
// ---------------------------------------------------------------------------
// If the google analytics module were enabled we load the custom GA settings.
if (\Drupal::moduleHandler()
->moduleExists('google_analytics')) {
$google_analytics_managed_optional_path = Drupal::service('module_handler')
->getModule('varbase_seo')
->getPath() . '/config/managed/google_analytics';
// Varbase SEO custom google analytics config settings.
$google_analytics_managed_optional_configs = [
'google_analytics.settings',
];
foreach ($google_analytics_managed_optional_configs as $config_name) {
$config_path = $google_analytics_managed_optional_path . '/' . $config_name . '.yml';
$config_content = file_get_contents($config_path);
$config_data = (array) Yaml::parse($config_content);
$config_factory = \Drupal::configFactory()
->getEditable($config_name);
$config_factory
->setData($config_data)
->save(TRUE);
}
}
// Have forced configs import after the entity and definitions updates.
$forced_configs_import_after_entity_updates = [
'views.view.redirect_404',
];
foreach ($forced_configs_import_after_entity_updates as $config_name) {
$config_path = $optional_install_path . '/' . $config_name . '.yml';
$config_content = file_get_contents($config_path);
$config_data = (array) Yaml::parse($config_content);
$config_factory = \Drupal::configFactory()
->getEditable($config_name);
$config_factory
->setData($config_data)
->save(TRUE);
}
}