function field_config_cardinality_form_alter in Field Config Cardinality 8.2
Same name and namespace in other branches
- 8 field_config_cardinality.module \field_config_cardinality_form_alter()
Implements hook_form_alter().
Parameters
$form:
FormStateInterface $form_state: _id
File
- ./
field_config_cardinality.module, line 29 - Field_config_cardinality.module.
Code
function field_config_cardinality_form_alter(&$form, FormStateInterface $form_state, $form_id) {
if ($form_id == 'field_config_edit_form') {
/** @var \Drupal\field\Entity\FieldConfig $field_config */
$field_config = $form_state
->getFormObject()
->getEntity();
$cardinality = $field_config
->getFieldStorageDefinition()
->get('cardinality');
$cardinality_config = $field_config
->getThirdPartySetting('field_config_cardinality', 'cardinality_config') ? $field_config
->getThirdPartySetting('field_config_cardinality', 'cardinality_config') : $cardinality;
$form['cardinality_container'] = [
// Reset #parents so the additional container does not appear.
'#parents' => [],
'#type' => 'fieldset',
'#title' => t('Allowed number of values (Cardinality Instance)'),
'#attributes' => [
'class' => [
'container-inline',
'fieldgroup',
'form-composite',
],
],
];
$options = [
'number' => t('Limited'),
FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED => t('Unlimited'),
];
if ($cardinality != -1) {
unset($options['-1']);
}
$form['cardinality_container']['cardinality'] = [
'#type' => 'select',
'#title' => t('Allowed number of values'),
'#title_display' => 'invisible',
'#options' => $options,
'#default_value' => $cardinality_config == FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED ? FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED : 'number',
];
$max = $cardinality != -1 ? $cardinality : TRUE;
$form['cardinality_container']['cardinality_number'] = [
'#type' => 'number',
'#default_value' => $cardinality_config != FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED ? $cardinality_config : 1,
'#min' => 1,
'#max' => $max,
'#title' => t('Limit'),
'#description' => t('Max number allowed:') . ($cardinality != -1 ? $cardinality : t('Unlimited')),
'#title_display' => 'invisible',
'#size' => 2,
'#states' => [
'visible' => [
':input[name="cardinality"]' => [
'value' => 'number',
],
],
'disabled' => [
':input[name="cardinality"]' => [
'value' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
],
],
],
];
$form['#entity_builders'][] = 'field_config_cardinality_form_builder';
}
}