function webform_update_8075 in Webform 6.x
Same name and namespace in other branches
- 8.5 includes/webform.install.update.inc \webform_update_8075()
Issue #2895671: Entity reference format.
File
- includes/
webform.install.update.inc, line 1498 - Archived Webform update hooks.
Code
function webform_update_8075() {
// Update webform.settings.
$admin_config = \Drupal::configFactory()
->getEditable('webform.settings');
if ($admin_config
->get('export.entity_reference_format') === 'id') {
$admin_config
->set('export.entity_reference_items', [
'id',
]);
}
else {
$admin_config
->set('export.entity_reference_items', [
'id',
'title',
'url',
]);
}
$admin_config
->clear('export.entity_reference_format');
$admin_config
->save();
// Update webform results.export state.
/** @var \Drupal\webform\WebformInterface[] $webforms */
$webforms = Webform::loadMultiple();
foreach ($webforms as $webform) {
$namespace = 'webform.webform.' . $webform
->id();
$values = \Drupal::state()
->get($namespace, []);
if (empty($values)) {
continue;
}
// Loop through state values looking for results.export variable.
foreach ($values as $key => &$value) {
if (strpos($key, 'results.export') === 0) {
switch ($value['entity_reference_format']) {
case 'id':
$value['entity_reference_items'] = [
'id',
];
break;
default:
case 'link':
$value['entity_reference_items'] = [
'id',
'title',
'url',
];
break;
}
unset($value['entity_reference_format']);
\Drupal::state()
->set($namespace, $values);
}
}
}
}