protected function WebformEntityController::getVariants in Webform 8.5
Same name and namespace in other branches
- 6.x src/Controller/WebformEntityController.php \Drupal\webform\Controller\WebformEntityController::getVariants()
Get variants from the current request.
Parameters
\Symfony\Component\HttpFoundation\Request $request: The current request.
\Drupal\webform\WebformInterface|null $webform: The current webform.
\Drupal\Core\Entity\EntityInterface|null $source_entity: The current source entity.
Return value
array An associative array of variants keyed by element key and variant instance id.
See also
\Drupal\webform\Entity\Webform::getSubmissionForm
1 call to WebformEntityController::getVariants()
- WebformEntityController::confirmation in src/
Controller/ WebformEntityController.php - Returns a webform confirmation page.
File
- src/
Controller/ WebformEntityController.php, line 229
Class
- WebformEntityController
- Provides route responses for Webform entity.
Namespace
Drupal\webform\ControllerCode
protected function getVariants(Request $request, WebformInterface $webform, EntityInterface $source_entity = NULL) {
// Get variants from '_webform_variant query string parameter.
$webform_variant = $request->query
->get('_webform_variant');
if ($webform_variant && ($webform
->access('update') || $webform
->access('test'))) {
return $webform_variant;
}
// Get default data.
$field_name = $this->webformEntityReferenceManager
->getFieldName($source_entity);
if (!$field_name) {
return [];
}
$default_data = $source_entity->{$field_name}->default_data;
$default_data = $default_data ? Yaml::decode($default_data) : [];
// Get query string data.
$query = $request->query
->all();
// Get variants from #prepopulate query string parameters.
$variants = [];
$element_keys = $webform
->getElementsVariant();
foreach ($element_keys as $element_key) {
$element = $webform
->getElement($element_key);
if (!empty($query[$element_key]) && !empty($element['#prepopulate'])) {
$variants[$element_key] = $query[$element_key];
}
elseif (!empty($default_data[$element_key])) {
$variants[$element_key] = $default_data[$element_key];
}
}
return $variants;
}