protected function FilterEditForm::buildValueElement in Entity Share 8
Same name and namespace in other branches
- 8.3 modules/entity_share_server/src/Form/FilterEditForm.php \Drupal\entity_share_server\Form\FilterEditForm::buildValueElement()
- 8.2 modules/entity_share_server/src/Form/FilterEditForm.php \Drupal\entity_share_server\Form\FilterEditForm::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 FilterEditForm::buildValueElement()
- FilterEditForm::form in modules/
entity_share_server/ src/ Form/ FilterEditForm.php - Gets the actual form array to be built.
File
- modules/
entity_share_server/ src/ Form/ FilterEditForm.php, line 147
Class
- FilterEditForm
- Class FilterEditForm.
Namespace
Drupal\entity_share_server\FormCode
protected function buildValueElement(array &$form, FormStateInterface $form_state) {
/** @var \Drupal\entity_share_server\Entity\ChannelInterface $channel */
$channel = $this->entity;
$channel_filters = $channel
->get('channel_filters');
$filter_id = $this
->getFilterId();
$filter_operator = $channel_filters[$filter_id]['operator'];
$selected_operator = $form_state
->getValue('operator');
// No operator selected and the filter does not have any (which should not
// happen).
if (empty($selected_operator) && $filter_operator == '') {
return;
}
if (!empty($selected_operator)) {
$operator = $selected_operator;
}
else {
$operator = $filter_operator;
}
// Operators which do not require value.
if (in_array($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) {
if (isset($channel_filters[$filter_id]['value'])) {
$number_of_values = count($channel_filters[$filter_id]['value']);
}
else {
$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' => t('Value'),
'#default_value' => isset($channel_filters[$filter_id]['value'][$i]) ? $channel_filters[$filter_id]['value'][$i] : '',
];
}
$form['value_wrapper']['actions'] = [
'#type' => 'actions',
];
if (in_array($operator, OperatorsHelper::getMultipleValuesOperators())) {
$form['value_wrapper']['actions']['add_one_value'] = [
'#type' => 'submit',
'#value' => 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' => t('Remove a value'),
'#submit' => [
'::removeOneValue',
],
'#ajax' => [
'callback' => '::addRemoveCallback',
'wrapper' => 'value-wrapper',
],
];
}
}