public function Webform::applyVariant in Webform 8.5
Same name and namespace in other branches
- 6.x src/Entity/Webform.php \Drupal\webform\Entity\Webform::applyVariant()
Apply webform variant.
Parameters
string $element_key: The variant element key.
string $instance_id: The variant instance id.
bool $force: Apply disabled variants. Defaults to FALSE.
Return value
bool Return TRUE is variant was applied.
1 call to Webform::applyVariant()
- Webform::applyVariants in src/
Entity/ Webform.php - Apply webform variants based on a webform submission or parameter.
File
- src/
Entity/ Webform.php, line 2991
Class
- Webform
- Defines the webform entity.
Namespace
Drupal\webform\EntityCode
public function applyVariant($element_key, $instance_id, $force = FALSE) {
$element = $this
->getElement($element_key);
// Check that the webform has a variant instance.
if (!$this
->getVariants()
->has($instance_id)) {
$t_args = [
'@title' => $element['#title'],
'@key' => $element_key,
'@instance_id' => $instance_id,
];
// Log warning for missing variant instances.
\Drupal::logger('webform')
->warning("The '@instance_id' variant id is missing for the '@title (@key)' variant type. <strong>No variant settings have been applied.</strong>", $t_args);
// Display onscreen warning to users who can update the webform.
if (\Drupal::currentUser()
->hasPermission('edit webform variants')) {
\Drupal::messenger()
->addWarning($this
->t("The '@instance_id' variant id is missing for the '@title (@key)' variant type. <strong>No variant settings have been applied.</strong>", $t_args));
}
return FALSE;
}
$variant_plugin_id = $element['#variant'];
$variant_plugin = $this
->getVariant($instance_id);
// Check that the variant plugin id matches the element's variant plugin id.
if ($variant_plugin_id !== $variant_plugin
->getPluginId()) {
return FALSE;
}
// Check that the variant plugin instance is enabled.
if (empty($force) && $variant_plugin
->isDisabled()) {
return FALSE;
}
// Apply the variant.
return $variant_plugin
->applyVariant();
}