protected static function WebformCodeMirror::validateTwig in Webform 8.5
Same name and namespace in other branches
- 6.x src/Element/WebformCodeMirror.php \Drupal\webform\Element\WebformCodeMirror::validateTwig()
Validate Twig.
Parameters
array $element: The form element whose value is being validated.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
array $complete_form: The complete form structure.
Return value
array|null An array of error messages.
1 call to WebformCodeMirror::validateTwig()
- WebformCodeMirror::getErrors in src/
Element/ WebformCodeMirror.php - Get validation errors.
File
- src/
Element/ WebformCodeMirror.php, line 287
Class
- WebformCodeMirror
- Provides a webform element for using CodeMirror.
Namespace
Drupal\webform\ElementCode
protected static function validateTwig($element, FormStateInterface $form_state, $complete_form) {
$template = $element['#value'];
$form_object = $form_state
->getFormObject();
try {
// If form object has ::getWebform method validate Twig template
// using a temporary webform submission context.
if (method_exists($form_object, 'getWebform')) {
/** @var \Drupal\webform\WebformInterface $webform */
$webform = $form_object
->getWebform();
// Get a temporary webform submission.
/** @var \Drupal\webform\WebformSubmissionGenerateInterface $webform_submission_generate */
$webform_submission_generate = \Drupal::service('webform_submission.generate');
$values = [
// Set sid to 0 to prevent validation errors.
'sid' => 0,
'webform_id' => $webform
->id(),
'data' => $webform_submission_generate
->getData($webform),
];
$webform_submission = WebformSubmission::create($values);
$build = WebformTwigExtension::buildTwigTemplate($webform_submission, $template, []);
}
else {
$build = [
'#type' => 'inline_template',
'#template' => $element['#value'],
'#context' => [],
];
}
\Drupal::service('renderer')
->renderPlain($build);
return NULL;
} catch (\Exception $exception) {
return [
$exception
->getMessage(),
];
}
}