function webform_update_8606 in Webform 6.x
Issue #3104392: Webform URL aliases should begin with a forward slash.
File
- includes/
webform.install.update.inc, line 4040 - Archived Webform update hooks.
Code
function webform_update_8606() {
$config_factory = \Drupal::configFactory();
// Remove empty default page base path.
$admin_config = $config_factory
->getEditable('webform.settings');
$default_page_base_path = $admin_config
->get('settings.default_page_base_path');
if ($default_page_base_path === '/') {
$admin_config
->set('settings.default_page_base_path', '')
->save();
}
// Remove empty page paths.
foreach ($config_factory
->listAll('webform.webform.') as $webform_config_name) {
$webform_config = $config_factory
->getEditable($webform_config_name);
$data = $webform_config
->getRawData();
$path_changed = FALSE;
if ($data['settings']['page_submit_path'] === '/') {
$data['settings']['page_submit_path'] = '';
$path_changed = TRUE;
}
if ($data['settings']['page_confirm_path'] === '/') {
$data['settings']['page_confirm_path'] = '';
$path_changed = TRUE;
}
if ($path_changed) {
$webform_config
->setData($data)
->save();
/** @var WebformInterface $webform */
$webform = Webform::load($data['id']);
$webform
->setSetting('page_submit_path', $data['settings']['page_submit_path']);
$webform
->setSetting('page_confirm_path', $data['settings']['page_confirm_path']);
$webform
->updatePaths();
}
}
}