protected function FilterAddForm::buildValueElement in Entity Share 8.3
Same name and namespace in other branches
- 8 modules/entity_share_server/src/Form/FilterAddForm.php \Drupal\entity_share_server\Form\FilterAddForm::buildValueElement()
- 8.2 modules/entity_share_server/src/Form/FilterAddForm.php \Drupal\entity_share_server\Form\FilterAddForm::buildValueElement()
Helper function to generate filter form elements.
Parameters
array $form: The form array.
\Drupal\Core\Form\FormStateInterface $form_state: The form state object.
1 call to FilterAddForm::buildValueElement()
- FilterAddForm::form in modules/
entity_share_server/ src/ Form/ FilterAddForm.php - Gets the actual form array to be built.
File
- modules/
entity_share_server/ src/ Form/ FilterAddForm.php, line 117
Class
- FilterAddForm
- Form to add a filter on a channel.
Namespace
Drupal\entity_share_server\FormCode
protected function buildValueElement(array &$form, FormStateInterface $form_state) {
$selected_operator = $form_state
->getValue('operator');
// No operator selected.
if (empty($selected_operator)) {
return;
}
// Operators which do not require value.
if (in_array($selected_operator, OperatorsHelper::getStandAloneOperators())) {
return;
}
// Check the number of values.
$number_of_values = $form_state
->get('number_of_values');
// We have to ensure that there is at least one value field.
if ($number_of_values === NULL) {
$number_of_values = 1;
$form_state
->set('number_of_values', $number_of_values);
}
for ($i = 0; $i < $number_of_values; $i++) {
$form['value_wrapper']['value'][$i] = [
'#type' => 'textfield',
'#title' => $this
->t('Value'),
];
}
$form['value_wrapper']['actions'] = [
'#type' => 'actions',
];
$form['value_wrapper']['actions']['add_one_value'] = [
'#type' => 'submit',
'#value' => $this
->t('Add a value'),
'#submit' => [
'::addOneValue',
],
'#ajax' => [
'callback' => '::addRemoveCallback',
'wrapper' => 'value-wrapper',
],
];
// If there is more than one name, add the remove button.
if ($number_of_values > 1) {
$form['value_wrapper']['actions']['remove_one_value'] = [
'#type' => 'submit',
'#value' => $this
->t('Remove a value'),
'#submit' => [
'::removeOneValue',
],
'#ajax' => [
'callback' => '::addRemoveCallback',
'wrapper' => 'value-wrapper',
],
];
}
}