diff --git a/core/modules/user/config/optional/views.view.user_admin_people.yml b/core/modules/user/config/optional/views.view.user_admin_people.yml index 043322e..5f99169 100644 --- a/core/modules/user/config/optional/views.view.user_admin_people.yml +++ b/core/modules/user/config/optional/views.view.user_admin_people.yml @@ -452,7 +452,7 @@ display: hide_empty: false empty_zero: false hide_alter_empty: true - type: timestamp_ago + type: user_timestamp_ago settings: future_format: '@interval hence' past_format: '@interval ago' diff --git a/core/modules/user/config/schema/user.entity_schema.yml b/core/modules/user/config/schema/user.entity_schema.yml deleted file mode 100644 index d0ef74c..0000000 --- a/core/modules/user/config/schema/user.entity_schema.yml +++ /dev/null @@ -1,29 +0,0 @@ -# Schema for formatter settings defined bu user module. - -field.formatter.settings.user_timestamp: - type: mapping - label: 'Timestamp display format settings' - mapping: - date_format: - type: string - label: 'Date format' - custom_date_format: - type: string - label: 'Custom date format' - timezone: - type: string - label: 'Time zone' - -field.formatter.settings.user_timestamp_ago: - type: mapping - label: 'Timestamp ago display format settings' - mapping: - future_format: - type: string - label: 'Future format' - past_format: - type: string - label: 'Past format' - granularity: - type: integer - label: 'Granularity' diff --git a/core/modules/user/config/schema/user.field_formatter_schema.yml b/core/modules/user/config/schema/user.field_formatter_schema.yml new file mode 100644 index 0000000..50da16a --- /dev/null +++ b/core/modules/user/config/schema/user.field_formatter_schema.yml @@ -0,0 +1,7 @@ +# Schema for field formatter settings defined by user module. + +field.formatter.settings.user_timestamp: + type: field.formatter.settings.timestamp + +field.formatter.settings.user_timestamp_ago: + type: field.formatter.settings.timestamp_ago diff --git a/core/modules/user/src/Plugin/Field/FieldFormatter/UserTimestampAgoFormatter.php b/core/modules/user/src/Plugin/Field/FieldFormatter/UserTimestampAgoFormatter.php index 7519971..a56fe66 100644 --- a/core/modules/user/src/Plugin/Field/FieldFormatter/UserTimestampAgoFormatter.php +++ b/core/modules/user/src/Plugin/Field/FieldFormatter/UserTimestampAgoFormatter.php @@ -11,11 +11,12 @@ use Drupal\Core\Field\Plugin\Field\FieldFormatter\TimestampAgoFormatter; /** - * Plugin implementation of the 'timestamp' formatter as time ago for user. + * Defines a 'user_timestamp_ago' formatter plugin to be used with user + * timestamp base fields. * * @FieldFormatter( * id = "user_timestamp_ago", - * label = @Translation("Time ago1"), + * label = @Translation("Time ago"), * field_types = { * "user_timestamp" * } diff --git a/core/modules/user/src/Plugin/Field/FieldFormatter/UserTimestampFormatter.php b/core/modules/user/src/Plugin/Field/FieldFormatter/UserTimestampFormatter.php index e3be894..a8d1279 100644 --- a/core/modules/user/src/Plugin/Field/FieldFormatter/UserTimestampFormatter.php +++ b/core/modules/user/src/Plugin/Field/FieldFormatter/UserTimestampFormatter.php @@ -11,11 +11,12 @@ use Drupal\Core\Field\Plugin\Field\FieldFormatter\TimestampFormatter; /** - * Plugin implementation of the 'timestamp' formatter. + * Defines a 'user_timestamp' formatter plugin to be used with user timestamp + * base fields. * * @FieldFormatter( * id = "user_timestamp", - * label = @Translation("Default1"), + * label = @Translation("Default"), * field_types = { * "user_timestamp" * } diff --git a/core/modules/user/src/UserViewsData.php b/core/modules/user/src/UserViewsData.php index c71b2ac..891c1ee 100644 --- a/core/modules/user/src/UserViewsData.php +++ b/core/modules/user/src/UserViewsData.php @@ -7,6 +7,7 @@ namespace Drupal\user; +use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\views\EntityViewsData; /** @@ -270,4 +271,25 @@ public function getViewsData() { return $data; } + /** + * Implements a views data post-processor for 'user_timestamp' fields. + * + * Adds the correct handlers to the field. + * + * @param string $table + * The table of the field to handle. + * @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition + * The field definition. + * @param array $views_field + * An array of data to be post processed. + * @param string $column_name + * For fields containing multiple columns, the column name being processed. + */ + protected function processViewsDataForUserTimestamp($table, FieldDefinitionInterface $field_definition, array &$views_field, $column_name) { + $views_field['field']['id'] = 'field'; + $views_field['argument']['id'] = 'date'; + $views_field['filter']['id'] = 'date'; + $views_field['sort']['id'] = 'date'; + } + }