You are here

function webform_test_webform_load in Webform 6.x

Same name and namespace in other branches
  1. 8.5 tests/modules/webform_test/webform_test.module \webform_test_webform_load()

Implements hook_webform_load().

File

tests/modules/webform_test/webform_test.module, line 82
Support module for webform related testing.

Code

function webform_test_webform_load(array $entities) {

  // If ?generate is passed to the current pages URL the test webform's elements
  // will get rebuilt.
  if (!isset($_GET['generate'])) {
    return;
  }
  foreach ($entities as $id => $entity) {
    $name = _webform_test_load_include($id);
    if ($name && function_exists('webform_test_' . $name)) {
      $function = 'webform_test_' . $name;
      $elements = $function($entity);
      $entity
        ->setElements($elements);

      // Issue: Unable to execute Webform::save().
      // $entity->save();
      // Workaround: Write the elements directory to webform config.
      \Drupal::configFactory()
        ->getEditable('webform.webform.' . $id)
        ->set('elements', Yaml::encode($elements))
        ->save();

      // Display message.
      \Drupal::messenger()
        ->addStatus(t('Generated elements for %title webform', [
        '%title' => $entity
          ->label(),
      ]));
    }
  }
}