function field_config_cardinality_field_widget_multivalue_form_alter in Field Config Cardinality 8.2
Same name and namespace in other branches
- 8 field_config_cardinality.module \field_config_cardinality_field_widget_multivalue_form_alter()
Implements hook_form_alter().
Parameters
$elements:
FormStateInterface $form_state:
$context:
File
- ./
field_config_cardinality.module, line 118 - Field_config_cardinality.module.
Code
function field_config_cardinality_field_widget_multivalue_form_alter(&$elements, FormStateInterface $form_state, $context) {
$cardinality_config = array();
/** @var \Drupal\field\Entity\FieldConfig $field_definition */
$field_definition = $context['items']
->getFieldDefinition();
if (method_exists($field_definition, 'getOriginalId')) {
$cardinality_config = $field_definition
->getThirdPartySetting('field_config_cardinality', 'cardinality_config');
if (!empty($cardinality_config)) {
$elements['#attributes']['data-fcc'] = $cardinality_config;
}
}
// Implementation for multi managed_file
if (!empty($elements['#type']) && $elements['#type'] == 'managed_file') {
if (!empty($cardinality_config) && $cardinality_config >= 1) {
if ($elements['#delta'] > $cardinality_config - 1) {
$elements['#access'] = FALSE;
}
}
}
// Implementation for multi select type
if (!empty($elements['#type']) && $elements['#type'] == 'select') {
if (!empty($cardinality_config) && $cardinality_config >= 1) {
$elements['#multiple'] = FALSE;
}
}
}