class SubscriptionViewsData in Commerce Recurring Framework 8
Provides views data for subscription.
Hierarchy
- class \Drupal\views\EntityViewsData implements EntityHandlerInterface, EntityViewsDataInterface uses DeprecatedServicePropertyTrait, StringTranslationTrait
- class \Drupal\commerce\CommerceEntityViewsData
- class \Drupal\commerce_recurring\SubscriptionViewsData
- class \Drupal\commerce\CommerceEntityViewsData
Expanded class hierarchy of SubscriptionViewsData
File
- src/
SubscriptionViewsData.php, line 12
Namespace
Drupal\commerce_recurringView source
class SubscriptionViewsData extends CommerceEntityViewsData {
/**
* The purchasable entity type repository.
*
* @var Drupal\commerce\PurchasableEntityTypeRepositoryInterface
*/
protected $purchasableEntityTypeRepository;
/**
* {@inheritdoc}
*/
public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
$instance = parent::createInstance($container, $entity_type);
$instance->purchasableEntityTypeRepository = $container
->get('commerce.purchasable_entity_type_repository');
return $instance;
}
/**
* {@inheritdoc}
*/
public function getViewsData() {
$data = parent::getViewsData();
// Unset the default purchased entity relationship.
// It does not work properly since the target type is not defined.
unset($data['commerce_subscription']['purchased_entity']['relationship']);
// Collect all purchasable entity types.
/** @var \Drupal\commerce\PurchasableEntityInterface[] $entity_types */
$entity_types = $this->purchasableEntityTypeRepository
->getPurchasableEntityTypes();
/** @var \Drupal\Core\Entity\Sql\TableMappingInterface $table_mapping */
$table_mapping = $this->storage
->getTableMapping();
// Provide a relationship for each entity type found.
foreach ($entity_types as $entity_type) {
$entity_type_id = $entity_type
->id();
if (!$this->entityTypeManager
->hasDefinition($entity_type_id)) {
continue;
}
$data['commerce_subscription'][$entity_type_id] = [
'relationship' => [
'title' => $entity_type
->getLabel(),
'help' => $this
->t('The purchased @entity_type.', [
'@entity_type' => $entity_type
->getSingularLabel(),
]),
'base' => $this
->getViewsTableForEntityType($entity_type),
'base field' => $entity_type
->getKey('id'),
'relationship field' => $table_mapping
->getColumnNames('purchased_entity')['target_id'],
'id' => 'standard',
'label' => $entity_type
->getLabel(),
],
];
$target_base_table = $this
->getViewsTableForEntityType($entity_type);
$data[$target_base_table]['reverse__commerce_subscription__purchased_entity'] = [
'relationship' => [
'title' => $this->entityType
->getLabel(),
'help' => $this
->t('The @subscription_entity_type for this @entity_type.', [
'@subscription_entity_type' => $this->entityType
->getPluralLabel(),
'@entity_type' => $entity_type
->getSingularLabel(),
]),
'group' => $entity_type
->getLabel(),
'base' => $this
->getViewsTableForEntityType($this->entityType),
'base field' => $table_mapping
->getColumnNames('purchased_entity')['target_id'],
'relationship field' => $entity_type
->getKey('id'),
'id' => 'standard',
'label' => $this->entityType
->getLabel(),
'entity_type' => $this->entityType
->id(),
],
];
}
return $data;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CommerceEntityViewsData:: |
protected | property | The entity type bundle info. | |
CommerceEntityViewsData:: |
protected | property | The table mapping. | |
CommerceEntityViewsData:: |
protected | function | Adds views data for the given bundle field. | |
CommerceEntityViewsData:: |
protected | function | Adds reverse relationships for the base entity reference fields. | |
CommerceEntityViewsData:: |
protected | function |
Puts the views data for a single field onto the views data. Overrides EntityViewsData:: |
|
CommerceEntityViewsData:: |
protected | function | Corrects the views data for address base fields. | |
CommerceEntityViewsData:: |
protected | function | Corrects the views data for address_country base fields. | |
CommerceEntityViewsData:: |
protected | function | Corrects the views data for commerce_price base fields. | |
CommerceEntityViewsData:: |
protected | function | Corrects the views data for datetime base fields. | 1 |
CommerceEntityViewsData:: |
protected | function | Corrects the views data for list_float base fields. | |
CommerceEntityViewsData:: |
protected | function | Corrects the views data for list_integer base fields. | |
CommerceEntityViewsData:: |
protected | function | Corrects the views data for list_string base fields. | |
CommerceEntityViewsData:: |
protected | function | Corrects the views data for state base fields. | |
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 | 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. | |
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. | |
SubscriptionViewsData:: |
protected | property | The purchasable entity type repository. | |
SubscriptionViewsData:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides CommerceEntityViewsData:: |
|
SubscriptionViewsData:: |
public | function |
Returns views data for the entity type. Overrides CommerceEntityViewsData:: |