class GroupContentViewsData in Group 8
Same name and namespace in other branches
- 2.0.x src/Entity/Views/GroupContentViewsData.php \Drupal\group\Entity\Views\GroupContentViewsData
Provides the views data for the group content entity type.
Hierarchy
- class \Drupal\views\EntityViewsData implements EntityHandlerInterface, EntityViewsDataInterface uses DeprecatedServicePropertyTrait, StringTranslationTrait
- class \Drupal\group\Entity\Views\GroupContentViewsData
Expanded class hierarchy of GroupContentViewsData
File
- src/
Entity/ Views/ GroupContentViewsData.php, line 12
Namespace
Drupal\group\Entity\ViewsView source
class GroupContentViewsData extends EntityViewsData {
/**
* The group content enabler plugin manager.
*
* @var \Drupal\group\Plugin\GroupContentEnablerManagerInterface
*/
protected $pluginManager;
/**
* {@inheritdoc}
*/
public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
/** @var static $views_data */
$views_data = parent::createInstance($container, $entity_type);
$views_data->pluginManager = $container
->get('plugin.manager.group_content_enabler');
return $views_data;
}
/**
* {@inheritdoc}
*/
public function getViewsData() {
$data = parent::getViewsData();
// Add a custom numeric argument for the parent group ID that allows us to
// use replacement titles with the parent group's label.
$data['group_content_field_data']['gid']['argument'] = [
'id' => 'group_id',
'numeric' => TRUE,
];
// Get the data table for GroupContent entities.
$data_table = $this->entityType
->getDataTable();
// Unset the 'entity_id' field relationship as we want a more powerful one.
// @todo Eventually, we may want to replace all of 'entity_id'.
unset($data[$data_table]['entity_id']['relationship']);
/** @var \Drupal\Core\Entity\EntityTypeInterface[] $entity_types */
$entity_types = $this->entityTypeManager
->getDefinitions();
// Add views data for all defined plugins so modules can provide default
// views even though their plugins may not have been installed yet.
foreach ($this->pluginManager
->getAll() as $plugin) {
$entity_type_id = $plugin
->getEntityTypeId();
if (!isset($entity_types[$entity_type_id])) {
continue;
}
$entity_type = $entity_types[$entity_type_id];
$entity_data_table = $entity_type
->getDataTable() ?: $entity_type
->getBaseTable();
// Create a unique field name for this views field.
$field_name = 'gc__' . $entity_type_id;
// We only add one 'group_content' relationship per entity type.
if (isset($data[$entity_data_table][$field_name])) {
continue;
}
$t_args = [
'@entity_type' => $entity_type
->getLabel(),
];
// This relationship will allow a group content entity to easily map to a
// content entity that it ties to a group, optionally filtering by plugin.
$data[$data_table][$field_name] = [
'title' => $this
->t('@entity_type from group content', $t_args),
'help' => $this
->t('Relates to the @entity_type entity the group content represents.', $t_args),
'relationship' => [
'group' => $entity_type
->getLabel(),
'base' => $entity_data_table,
'base field' => $entity_type
->getKey('id'),
'relationship field' => 'entity_id',
'id' => 'group_content_to_entity',
'label' => $this
->t('Group content @entity_type', $t_args),
'target_entity_type' => $entity_type_id,
],
];
}
return $data;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DeprecatedServicePropertyTrait:: |
public | function | Allows to access deprecated/removed properties. | |
EntityViewsData:: |
protected | property | ||
EntityViewsData:: |
protected | property | The entity field manager. | |
EntityViewsData:: |
protected | property | Entity type for this views data handler instance. | |
EntityViewsData:: |
protected | property | The entity type manager. | |
EntityViewsData:: |
protected | property | The field storage definitions for all base fields of the entity type. | |
EntityViewsData:: |
protected | property | The module handler. | |
EntityViewsData:: |
protected | property | The storage used for this entity type. | |
EntityViewsData:: |
protected | property | The translation manager. | |
EntityViewsData:: |
protected | function | Sets the entity links in case corresponding link templates exist. | |
EntityViewsData:: |
protected | function | Gets the field storage definitions. | |
EntityViewsData:: |
public | function |
Gets the table of an entity type to be used as base table in views. Overrides EntityViewsDataInterface:: |
|
EntityViewsData:: |
protected | function | Puts the views data for a single field onto the views data. | |
EntityViewsData:: |
protected | function | Provides the views data for a given data type and schema field. | |
EntityViewsData:: |
protected | function | Processes the views data for an entity reference field. | |
EntityViewsData:: |
protected | function | Processes the views data for a language field. | |
EntityViewsData:: |
protected | function | Processes the views data for a text field with formatting. | |
EntityViewsData:: |
protected | function | Processes the views data for a UUID field. | |
EntityViewsData:: |
public | function | Constructs an EntityViewsData object. | |
GroupContentViewsData:: |
protected | property | The group content enabler plugin manager. | |
GroupContentViewsData:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides EntityViewsData:: |
|
GroupContentViewsData:: |
public | function |
Returns views data for the entity type. Overrides EntityViewsData:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |