public function LinkAddressfield::statesHandler in Conditional Fields 4.x
Same name and namespace in other branches
- 8 src/Plugin/conditional_fields/handler/extra_contrib/LinkAddressfield.php \Drupal\conditional_fields\Plugin\conditional_fields\handler\extra_contrib\LinkAddressfield::statesHandler()
Executes states handler according to conditional fields settings.
Overrides ConditionalFieldsHandlersPluginInterface::statesHandler
File
- src/
Plugin/ conditional_fields/ handler/ extra_contrib/ LinkAddressfield.php, line 20
Class
- LinkAddressfield
- Provides states handler for links provided by the Addressfield module.
Namespace
Drupal\conditional_fields\Plugin\conditional_fields\handler\extra_contribCode
public function statesHandler($field, $field_info, $options) {
$state = [];
if ($options['values_set'] != ConditionalFieldsInterface::CONDITIONAL_FIELDS_DEPENDENCY_VALUES_WIDGET) {
return $state;
}
$regex = $options['values_set'] == ConditionalFieldsInterface::CONDITIONAL_FIELDS_DEPENDENCY_VALUES_REGEX;
$keys = [];
if ($field['#handlers']['address']) {
$keys += [
'country',
'thoroughfare',
'premise',
'postal_code',
'locality',
'administrative_area',
];
}
if ($field['#handlers']['organisation']) {
$keys += [
'organisation_name',
];
}
if ($field['#handlers']['name-oneline']) {
$keys += [
'name_line',
];
}
elseif ($field['#handlers']['name-full']) {
$keys += [
'first_name',
'last_name',
];
}
$addressfield_selectors = [];
foreach ($keys as $key) {
$addressfield_selectors[str_replace('%key', $key, $options['selector'])] = [
'value' => $regex ? $options['value'] : $options['value'][0][$key],
];
}
$state = [
$options['state'] => $addressfield_selectors,
];
return $state;
}