function webform_update_8045 in Webform 6.x
Same name and namespace in other branches
- 8.5 includes/webform.install.update.inc \webform_update_8045()
Issue #2878307: webform example module disable causes a customized webform deleted.
File
- includes/
webform.install.update.inc, line 921 - Archived Webform update hooks.
Code
function webform_update_8045() {
// Remove sub module dependencies copied to new forms.
$webform_modules = WebformReflectionHelper::getSubModules();
$config_factory = \Drupal::configFactory();
foreach ($config_factory
->listAll('webform.webform.') as $webform_config_name) {
// Don't remove dependencies for submodule config files.
if (_webform_update_8045_is_submodule_config($webform_config_name)) {
continue;
}
$webform_config = $config_factory
->getEditable($webform_config_name);
$data = $webform_config
->getRawData();
// Remove enforce module dependency when a sub-module's webform is
// duplicated.
if (isset($data['dependencies']['enforced']['module'])) {
$data['dependencies']['enforced']['module'] = array_diff($data['dependencies']['enforced']['module'], $webform_modules);
if (empty($data['dependencies']['enforced']['module'])) {
unset($data['dependencies']['enforced']['module']);
if (empty($data['dependencies']['enforced'])) {
unset($data['dependencies']['enforced']);
}
}
$webform_config
->setData($data);
$webform_config
->save();
}
}
}