From 20afb65af748eba75c862a20d7bc710482ea0e10 Mon Sep 17 00:00:00 2001 From: s j <sj@1729.be> Date: Wed, 5 Jan 2022 11:14:09 +0100 Subject: [PATCH] imp: add RRN/NRN field type --- .gitignore | 1 + composer.json | 5 ++ .../Field/FieldFormatter/RrnNrnFormatter.php | 20 +++++++ src/Plugin/Field/FieldType/RrnNrnField.php | 56 +++++++++++++++++++ src/Plugin/Field/FieldWidget/RrnNrnWidget.php | 3 +- 5 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 src/Plugin/Field/FieldFormatter/RrnNrnFormatter.php create mode 100644 src/Plugin/Field/FieldType/RrnNrnField.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b25c15b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/composer.json b/composer.json index ec171d3..fb8d024 100644 --- a/composer.json +++ b/composer.json @@ -13,5 +13,10 @@ "require": { "drupal/webform_rrn_nrn": "^2.2.0" }, + "extra": { + "branch-alias": { + "dev-1.x": "1.0.x-dev" + }, + }, "minimum-stability": "dev" } diff --git a/src/Plugin/Field/FieldFormatter/RrnNrnFormatter.php b/src/Plugin/Field/FieldFormatter/RrnNrnFormatter.php new file mode 100644 index 0000000..5268d76 --- /dev/null +++ b/src/Plugin/Field/FieldFormatter/RrnNrnFormatter.php @@ -0,0 +1,20 @@ +<?php + +namespace Drupal\field_rrn_nrn\Plugin\Field\FieldFormatter; + +use Drupal\Core\Field\Plugin\Field\FieldFormatter\BasicStringFormatter; + +/** + * Plugin implementation of the 'rrn_nrn_formatter' formatter. + * + * @FieldFormatter( + * id = "rrn_nrn_formatter", + * label = @Translation("RRN/NRN"), + * field_types = { + * "rrn_nrn" + * } + * ) + */ +class RrnNrnFormatter extends BasicStringFormatter { + +} diff --git a/src/Plugin/Field/FieldType/RrnNrnField.php b/src/Plugin/Field/FieldType/RrnNrnField.php new file mode 100644 index 0000000..b22d884 --- /dev/null +++ b/src/Plugin/Field/FieldType/RrnNrnField.php @@ -0,0 +1,56 @@ +<?php + +namespace Drupal\field_rrn_nrn\Plugin\Field\FieldType; + +use Drupal\Core\Field\FieldItemBase; +use Drupal\Core\Field\FieldStorageDefinitionInterface; +use Drupal\Core\TypedData\DataDefinition; + +/** + * Plugin implementation of the 'rrn_nrn_field' field type. + * + * @FieldType( + * id = "rrn_nrn", + * label = @Translation("RRN/NRN Field"), + * description = @Translation("RRN/NRN Field"), + * default_widget = "rrn_nrn_widget", + * default_formatter = "rrn_nrn_formatter" + * ) + */ +class RrnNrnField extends FieldItemBase { + + /** + * {@inheritdoc} + */ + public static function schema(FieldStorageDefinitionInterface $field_definition) { + return [ + 'columns' => [ + 'value' => [ + 'type' => 'text', + 'size' => 'tiny', + 'not null' => FALSE, + ], + ], + ]; + } + + /** + * {@inheritdoc} + */ + public function isEmpty() { + $value = $this->get('value')->getValue(); + return $value === NULL || $value === ''; + } + + /** + * {@inheritdoc} + */ + public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) { + $properties = []; + $properties['value'] = DataDefinition::create('string') + ->setLabel(t('RRN NRN')); + + return $properties; + } + +} diff --git a/src/Plugin/Field/FieldWidget/RrnNrnWidget.php b/src/Plugin/Field/FieldWidget/RrnNrnWidget.php index 805d2e5..d730d0c 100644 --- a/src/Plugin/Field/FieldWidget/RrnNrnWidget.php +++ b/src/Plugin/Field/FieldWidget/RrnNrnWidget.php @@ -13,7 +13,8 @@ use Drupal\Core\Form\FormStateInterface; * id = "rrn_nrn_widget", * label = @Translation("RRN / NRN widget"), * field_types = { - * "string" + * "string", + * "rrn_nrn" * } * ) */ -- GitLab