og-8.x-1.x-dev/src/Plugin/Field/FieldType/OgGroupItem.php
src/Plugin/Field/FieldType/OgGroupItem.php
<?php
declare(strict_types=1);
namespace Drupal\og\Plugin\Field\FieldType;
use Drupal\Core\Field\Attribute\FieldType;
use Drupal\Core\Field\FieldItemBase;
use Drupal\Core\Field\FieldStorageDefinitionInterface;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\Core\TypedData\DataDefinition;
/**
* OG Group Data class to return TRUE always.
*
* This field type is used simply as a placeholder for a field formatter that
* would allow non-groups members, members, and group managers to join, request
* or leave a group.
*/
#[FieldType(
id: 'og_group',
label: new TranslatableMarkup('OG Group'),
description: new TranslatableMarkup('Allow non-groups members, members, and group managers to join, request or leave a group'),
category: 'general',
default_formatter: 'og_group_subscribe',
no_ui: TRUE,
)]
class OgGroupItem extends FieldItemBase {
/**
* {@inheritdoc}
*/
public static function schema(FieldStorageDefinitionInterface $field_definition) {
return [];
}
/**
* {@inheritdoc}
*/
public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
$definitions = [];
$definitions['value'] = DataDefinition::create('boolean')
->setLabel('Group item value')
->setReadOnly(TRUE)
->setComputed(TRUE)
->setClass('\Drupal\og\OgGroupAlwaysTrue');
return $definitions;
}
}
