varbase_workflow.install in Varbase Workflow 2.0.x
Contains install and update for Varbase Workflow module.
File
varbase_workflow.installView source
<?php
/**
* @file
* Contains install and update for Varbase Workflow module.
*/
use Symfony\Component\Yaml\Yaml;
use Drupal\Core\Config\InstallStorage;
use Drupal\Core\Config\StorageInterface;
use Drupal\Core\Config\FileStorage;
use Vardot\Entity\EntityDefinitionUpdateManager;
/**
* Implements hook_install().
*/
function varbase_workflow_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);
// 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);
}
}
}
// Entity updates to clear up any mismatched entity and/or field definitions
// And Fix changes were detected in the entity type and field definitions.
\Drupal::classResolver()
->getInstanceFromDefinition(EntityDefinitionUpdateManager::class)
->applyUpdates();
}
/**
* Issue #3157689: Fix default revision value for [ In review ] state to false.
*
* For the Editorial workflow.
*/
function varbase_workflow_update_82001() {
if (\Drupal::moduleHandler()
->moduleExists('content_moderation')) {
$config_factory = \Drupal::service('config.factory')
->getEditable('workflows.workflow.varbase_editorial_workflow');
$type_settings = $config_factory
->get('type_settings');
if (isset($type_settings) && !empty($type_settings) && isset($type_settings['states']) && isset($type_settings['states']['review']) && isset($type_settings['states']['review']['default_revision'])) {
$type_settings['states']['review']['default_revision'] = FALSE;
$config_factory
->set('type_settings', $type_settings)
->save(TRUE);
}
}
}
Functions
Name![]() |
Description |
---|---|
varbase_workflow_install | Implements hook_install(). |
varbase_workflow_update_82001 | Issue #3157689: Fix default revision value for [ In review ] state to false. |