3
0
Fork 0
mirror of https://github.com/farmOS/farmOS.git synced 2024-02-23 11:37:38 +01:00

Add boolean base field helper.

This commit is contained in:
Michael Stenta 2020-12-10 13:23:22 -05:00
parent e3bf2a20c1
commit 429b976250

View file

@ -300,6 +300,10 @@ function farm_field_base_field_definition(array $options = []) {
farm_field_base_field_definition_timestamp($field, $options);
break;
case 'boolean':
farm_field_base_field_definition_boolean($field, $options);
break;
default:
throw new FieldException('Unsupported field type.');
@ -683,3 +687,37 @@ function farm_field_base_field_definition_timestamp(BaseFieldDefinition &$field,
'weight' => $options['weight']['view'] ?? 0,
]);
}
/**
* Boolean field modifier.
*
* @param \Drupal\Core\Field\BaseFieldDefinition &$field
* A base field definition object.
* @param array $options
* An array of options.
*/
function farm_field_base_field_definition_boolean(BaseFieldDefinition &$field, array $options = []) {
// Set the on/off labels.
$field->setSetting('on_label', 'Yes');
$field->setSetting('off_label', 'No');
// Build form and view display settings.
$field->setDisplayOptions('form', [
'type' => 'boolean_checkbox',
'settings' => [
'display_label' => TRUE,
],
'weight' => $options['weight']['form'] ?? 0,
]);
$field->setDisplayOptions('view', [
'label' => 'inline',
'type' => 'boolean',
'settings' => [
'format' => 'default',
'format_custom_false' => '',
'format_custom_true' => '',
],
'weight' => $options['weight']['view'] ?? 0,
]);
}