You are here

function yamlform_update_8023 in YAML Form 8

Issue #2765057: Remove default elements.

File

includes/yamlform.update.inc, line 587
YAML Form module update hooks.

Code

function yamlform_update_8023(&$sandbox) {
  $settings_config = \Drupal::configFactory()
    ->getEditable('yamlform.settings');
  $data = $settings_config
    ->getRawData();

  // Move customized default elements to a template.
  if (md5($data['elements']['default_elements']) != 'c5a931226e09a0d1f30a032d587bceb4') {
    YamlForm::create([
      'id' => 'template_default_elements',
      'title' => 'Template: Default Elements',
      'description' => 'Default elements previously used when a new form is created.<br/>For more information see: Issue <a href="https://www.drupal.org/node/2765057">#2765057</a>: Remove default elements.',
      'template' => TRUE,
      'elements' => $data['elements']['default_elements'],
    ])
      ->save();
    $customized_default_elements = TRUE;
  }
  else {
    $customized_default_elements = FALSE;
  }

  // Remove default elements.
  unset($data['elements']['default_elements']);
  $settings_config
    ->setData($data);
  $settings_config
    ->save();

  // Return message is custom default elements exist.
  if ($customized_default_elements) {
    return t("Moved existing default elements to a new form template called 'Template: Default Elements' (template_default_elements)");
  }
  else {
    return NULL;
  }
}