function yamlform_update_8014 in YAML Form 8
Issue #2748699: Change all references from Inputs to Elements.
File
- includes/
yamlform.update.inc, line 345 - YAML Form module update hooks.
Code
function yamlform_update_8014() {
$config_factory = \Drupal::configFactory();
// Update 'yamlform.settings' configuration.
$settings_config = \Drupal::configFactory()
->getEditable('yamlform.settings');
$yaml = Yaml::encode($settings_config
->getRawData());
$yaml = preg_replace('/(\\s+)inputs: /', '\\1elements: ', $yaml);
$yaml = preg_replace('/(\\s+)default_inputs: /', '\\1default_elements: ', $yaml);
$settings_config
->setData(Yaml::decode($yaml));
$settings_config
->save();
// Update 'yamlform.yamlform.*' configuration.
$yamlform_config_names = [
'example_inputs' => 'example_elements',
'example_inputs_extras' => 'example_elements_extras',
'example_inputs_formats' => 'example_elements_formats',
'example_inputs_masks' => 'example_elements_masks',
'example_inputs_states' => 'example_elements_states',
];
foreach ($config_factory
->listAll('yamlform.yamlform.') as $yamlform_config_name) {
$yamlform_config = $config_factory
->getEditable($yamlform_config_name);
$yamlform_id = str_replace('yamlform.yamlform.', '', $yamlform_config_name);
$yaml = Yaml::encode($yamlform_config
->getRawData());
$yaml = preg_replace('/(\\s+)inputs: /', '\\1elements: ', $yaml);
$yaml = preg_replace('/(\\s+)excluded_inputs: /', '\\1excluded_elements: ', $yaml);
$yaml = str_replace('_inputs_', '_elements_', $yaml);
$yaml = str_replace(' input ', ' element ', $yaml);
$yaml = str_replace(' Inputs', ' Elements', $yaml);
$yaml = str_replace(' inputs', ' elements', $yaml);
$yaml = str_replace('Private input', 'Private element ', $yaml);
if (isset($yamlform_config_names[$yamlform_id])) {
$yaml = str_replace($yamlform_id, $yamlform_config_names[$yamlform_id], $yaml);
$data = Yaml::decode($yaml);
\Drupal::configFactory()
->getEditable('yamlform.yamlform.' . $yamlform_id)
->delete();
\Drupal::configFactory()
->getEditable('yamlform.yamlform.' . $yamlform_config_names[$yamlform_id])
->setData($data)
->save();
}
else {
$data = Yaml::decode($yaml);
\Drupal::configFactory()
->getEditable('yamlform.yamlform.' . $yamlform_id)
->setData($data)
->save();
}
}
}