class ContentHubEntityTypeConfig in Acquia Content Hub 8
Defines a ContentHubEntityTypeConfig configuration entity class.
Plugin annotation
@ConfigEntityType(
id = "acquia_contenthub_entity_config",
label = @Translation("Acquia Content Hub Entity Type configuration"),
config_prefix = "entity",
admin_permission = "Administer Acquia Content Hub",
label_callback = "getLabelFromPlugin",
entity_keys = {
"id" = "id"
},
config_export = {
"id",
"bundles",
}
)
Hierarchy
- class \Drupal\Core\Entity\EntityBase implements EntityInterface uses RefinableCacheableDependencyTrait, DependencySerializationTrait
- class \Drupal\Core\Config\Entity\ConfigEntityBase implements ConfigEntityInterface uses SynchronizableEntityTrait, PluginDependencyTrait
- class \Drupal\acquia_contenthub\Entity\ContentHubEntityTypeConfig implements ContentHubEntityTypeConfigInterface
- class \Drupal\Core\Config\Entity\ConfigEntityBase implements ConfigEntityInterface uses SynchronizableEntityTrait, PluginDependencyTrait
Expanded class hierarchy of ContentHubEntityTypeConfig
2 files declare their use of ContentHubEntityTypeConfig
- acquia_contenthub.post_update.php in ./
acquia_contenthub.post_update.php - Post update functions for Acquia Content Hub.
- EntityManagerTest.php in tests/
src/ Unit/ EntityManagerTest.php
File
- src/
Entity/ ContentHubEntityTypeConfig.php, line 30
Namespace
Drupal\acquia_contenthub\EntityView source
class ContentHubEntityTypeConfig extends ConfigEntityBase implements ContentHubEntityTypeConfigInterface {
/**
* The Content Hub Entity Type Configuration.
*
* @var string
*/
protected $id;
/**
* The Bundle Configuration.
*
* @var array
* An array keyed by bundle.
*/
protected $bundles;
/**
* Gets the list of bundles and their configuration.
*
* @return array
* An array keyed by bundle.
*/
public function getBundles() {
return $this->bundles;
}
/**
* Check if this bundle is enabled.
*
* @param string $bundle
* The entity bundle.
*
* @return bool
* TRUE if enabled, FALSE otherwise.
*/
public function isEnableIndex($bundle) {
return !empty($this->bundles[$bundle]['enable_index']);
}
/**
* Check if view modes are enabled.
*
* @param string $bundle
* The entity bundle.
*
* @return bool
* TRUE if enabled, FALSE otherwise.
*/
public function isEnabledViewModes($bundle) {
return !empty($this->bundles[$bundle]['enable_viewmodes']);
}
/**
* Obtains the list of rendering view modes.
*
* Note this does not check whether the view modes are enabled so a previous
* check on that has to be done.
*
* @param string $bundle
* The entity bundle.
*
* @return array
* An array of rendering view modes.
*/
public function getRenderingViewModes($bundle) {
return isset($this->bundles[$bundle]['rendering']) ? $this->bundles[$bundle]['rendering'] : [];
}
/**
* Sets the bundles.
*
* @param array $bundles
* An array of bundles configuration.
*/
public function setBundles(array $bundles) {
$this->bundles = $bundles;
}
/**
* Obtains the Preview Image Field for this particular bundle.
*
* @param string $bundle
* The entity bundle.
*
* @return string|null
* The preview image field if exists, NULL otherwise.
*/
public function getPreviewImageField($bundle) {
return isset($this->bundles[$bundle]['preview_image_field']) ? $this->bundles[$bundle]['preview_image_field'] : NULL;
}
/**
* Obtains the Preview Image Style for this particular bundle.
*
* @param string $bundle
* The entity bundle.
*
* @return string|null
* The preview image style if exists, NULL otherwise.
*/
public function getPreviewImageStyle($bundle) {
return isset($this->bundles[$bundle]['preview_image_style']) ? $this->bundles[$bundle]['preview_image_style'] : NULL;
}
/**
* Sets the preview image field for a specific bundle.
*
* @param string $bundle
* The entity bundle.
* @param string $image_field
* The preview image field.
*/
public function setPreviewImageField($bundle, $image_field) {
if ($this
->isEnableIndex($bundle)) {
$this->bundles[$bundle]['preview_image_field'] = $image_field;
}
}
/**
* Sets the preview image style for a specific bundle.
*
* @param string $bundle
* The entity bundle.
* @param string $image_style
* The preview image style.
*/
public function setPreviewImageStyle($bundle, $image_style) {
if ($this
->isEnableIndex($bundle)) {
$this->bundles[$bundle]['preview_image_style'] = $image_style;
}
}
/**
* {@inheritdoc}
*/
public function calculateDependencies() {
parent::calculateDependencies();
// Add dependencies on module.
$entity_type = $this
->entityTypeManager()
->getDefinition($this
->id());
$this
->addDependency('module', $entity_type
->getProvider());
// Add config dependencies.
$bundles = array_keys($this
->getBundles());
foreach ($bundles as $bundle) {
if ($this
->isEnableIndex($bundle)) {
// Add dependency on this particular bundle.
$this
->calculateDependenciesForBundle($entity_type, $bundle);
// Add dependencies on all enabled view modes.
if ($this
->isEnabledViewModes($bundle)) {
$this
->calculateDependenciesForViewModes($entity_type, $bundle);
}
// Add dependencies on preview image fields and styles.
$entity_field_manager = $this
->entityFieldManager();
$this
->calculateDependenciesForPreviewImage($entity_field_manager, $bundle);
}
}
return $this;
}
/**
* Calculates dependencies for bundle.
*
* @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
* The Entity Type object.
* @param string $bundle
* The entity bundle.
*/
protected function calculateDependenciesForBundle(EntityTypeInterface $entity_type, $bundle) {
$config_bundle = $entity_type
->getBundleConfigDependency($bundle);
$this
->addDependency($config_bundle['type'], $config_bundle['name']);
}
/**
* Calculate dependencies for view modes.
*
* @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
* The Entity Type object.
* @param string $bundle
* The entity bundle.
*/
protected function calculateDependenciesForViewModes(EntityTypeInterface $entity_type, $bundle) {
if ($this
->isEnabledViewModes($bundle)) {
$view_modes = $this
->getRenderingViewModes($bundle);
foreach ($view_modes as $view_mode) {
// Enable dependency on these view modes.
/** @var \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display */
$viewmode = "{$entity_type->id()}.{$bundle}.{$view_mode}";
if ($display = EntityViewDisplay::load($viewmode)) {
$this
->addDependencies($display
->getDependencies());
}
}
}
}
/**
* Calculates dependencies for Preview Image.
*
* @param \Drupal\Core\Entity\EntityFieldManagerInterface $entity_field_manager
* The Entity Field Manager service.
* @param string $bundle
* The entity bundle.
*/
protected function calculateDependenciesForPreviewImage(EntityFieldManagerInterface $entity_field_manager, $bundle) {
$preview_image_field = $this
->getPreviewImageField($bundle);
$preview_image_style = $this
->getPreviewImageStyle($bundle);
// Calculate dependencies for preview image field.
if (!empty($preview_image_field)) {
/** @var \Drupal\Core\Field\FieldDefinitionInterface[] $fields */
$fields = $entity_field_manager
->getFieldDefinitions($this
->id(), $bundle);
$field_config = isset($fields[$preview_image_field]) ? $fields[$preview_image_field]
->getConfig($bundle) : FALSE;
if ($field_config) {
$this
->addDependencies($field_config
->getDependencies());
}
// Calculate dependencies for preview image style.
if (!empty($preview_image_style)) {
$image_style = ImageStyle::load($preview_image_style);
if (isset($image_style)) {
$this
->addDependency($image_style
->getConfigDependencyKey(), $image_style
->getConfigDependencyName());
$this
->addDependencies($image_style
->getDependencies());
}
}
}
}
/**
* Gets the entity type manager service.
*
* @return \Drupal\Core\Entity\EntityTypeManagerInterface
* Returns the EntityTypeManager service.
*/
protected function entityTypeManager() {
return \Drupal::entityTypeManager();
}
/**
* Gets the entity field manager service.
*
* @return \Drupal\Core\Entity\EntityFieldManagerInterface
* Returns the EntityFieldManager service.
*/
protected function entityFieldManager() {
return \Drupal::getContainer()
->get('entity_field.manager');
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CacheableDependencyTrait:: |
protected | property | Cache contexts. | |
CacheableDependencyTrait:: |
protected | property | Cache max-age. | |
CacheableDependencyTrait:: |
protected | property | Cache tags. | |
CacheableDependencyTrait:: |
protected | function | Sets cacheability; useful for value object constructors. | |
ConfigEntityBase:: |
private | property | Whether the config is being deleted by the uninstall process. | |
ConfigEntityBase:: |
protected | property | The language code of the entity's default language. | |
ConfigEntityBase:: |
protected | property | The original ID of the configuration entity. | |
ConfigEntityBase:: |
protected | property | The enabled/disabled status of the configuration entity. | 4 |
ConfigEntityBase:: |
protected | property | Third party entity settings. | |
ConfigEntityBase:: |
protected | property | Trust supplied data and not use configuration schema on save. | |
ConfigEntityBase:: |
protected | property | The UUID for this entity. | |
ConfigEntityBase:: |
protected | property | Information maintained by Drupal core about configuration. | |
ConfigEntityBase:: |
protected | function | Overrides \Drupal\Core\Entity\DependencyTrait:addDependency(). | |
ConfigEntityBase:: |
public | function |
Creates a duplicate of the entity. Overrides EntityBase:: |
1 |
ConfigEntityBase:: |
public | function |
Disables the configuration entity. Overrides ConfigEntityInterface:: |
1 |
ConfigEntityBase:: |
public | function |
Enables the configuration entity. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Returns the value of a property. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Returns the cache tags that should be used to invalidate caches. Overrides EntityBase:: |
1 |
ConfigEntityBase:: |
public | function |
Gets the configuration dependency name. Overrides EntityBase:: |
|
ConfigEntityBase:: |
protected static | function | Gets the configuration manager. | |
ConfigEntityBase:: |
public | function |
Gets the configuration target identifier for the entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Gets the configuration dependencies. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets the original ID. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Gets the list of third parties that store information. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets the value of a third-party setting. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets all third-party settings of a given module. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
protected | function | Gets the typed config manager. | |
ConfigEntityBase:: |
public | function |
Gets whether on not the data is trusted. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
protected static | function |
Override to never invalidate the individual entities' cache tags; the
config system already invalidates them. Overrides EntityBase:: |
|
ConfigEntityBase:: |
protected | function |
Override to never invalidate the entity's cache tag; the config system
already invalidates it. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Checks whether this entity is installable. Overrides ConfigEntityInterface:: |
2 |
ConfigEntityBase:: |
public | function |
Overrides Entity::isNew(). Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Returns whether this entity is being changed during the uninstall process. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Deprecated way of generating a link to the entity. See toLink(). Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Informs the entity that entities it depends on will be deleted. Overrides ConfigEntityInterface:: |
7 |
ConfigEntityBase:: |
public static | function |
Acts on entities before they are deleted and before hooks are invoked. Overrides EntityBase:: |
8 |
ConfigEntityBase:: |
public | function |
Acts on an entity before the presave hook is invoked. Overrides EntityBase:: |
13 |
ConfigEntityBase:: |
public | function |
Saves an entity permanently. Overrides EntityBase:: |
1 |
ConfigEntityBase:: |
public | function |
Sets the value of a property. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Sets the original ID. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Sets the status of the configuration entity. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Sets the value of a third-party setting. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function | ||
ConfigEntityBase:: |
public static | function | Helper callback for uasort() to sort configuration entities by weight and label. | 6 |
ConfigEntityBase:: |
public | function |
Returns whether the configuration entity is enabled. Overrides ConfigEntityInterface:: |
4 |
ConfigEntityBase:: |
public | function |
Gets an array of all property values. Overrides EntityBase:: |
2 |
ConfigEntityBase:: |
public | function |
Gets the URL object for the entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Sets that the data should be trusted. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Unsets a third-party setting. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets the public URL for this entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Gets the URL object for the entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Constructs an Entity object. Overrides EntityBase:: |
10 |
ConfigEntityBase:: |
public | function |
Overrides EntityBase:: |
4 |
ContentHubEntityTypeConfig:: |
protected | property | The Bundle Configuration. | |
ContentHubEntityTypeConfig:: |
protected | property | The Content Hub Entity Type Configuration. | |
ContentHubEntityTypeConfig:: |
public | function |
Calculates dependencies and stores them in the dependency property. Overrides ConfigEntityBase:: |
|
ContentHubEntityTypeConfig:: |
protected | function | Calculates dependencies for bundle. | |
ContentHubEntityTypeConfig:: |
protected | function | Calculates dependencies for Preview Image. | |
ContentHubEntityTypeConfig:: |
protected | function | Calculate dependencies for view modes. | |
ContentHubEntityTypeConfig:: |
protected | function | Gets the entity field manager service. | |
ContentHubEntityTypeConfig:: |
protected | function |
Gets the entity type manager service. Overrides EntityBase:: |
|
ContentHubEntityTypeConfig:: |
public | function |
Gets the list of bundles and their configuration. Overrides ContentHubEntityTypeConfigInterface:: |
|
ContentHubEntityTypeConfig:: |
public | function |
Obtains the Preview Image Field for this particular bundle. Overrides ContentHubEntityTypeConfigInterface:: |
|
ContentHubEntityTypeConfig:: |
public | function |
Obtains the Preview Image Style for this particular bundle. Overrides ContentHubEntityTypeConfigInterface:: |
|
ContentHubEntityTypeConfig:: |
public | function |
Obtains the list of rendering view modes. Overrides ContentHubEntityTypeConfigInterface:: |
|
ContentHubEntityTypeConfig:: |
public | function |
Check if view modes are enabled. Overrides ContentHubEntityTypeConfigInterface:: |
|
ContentHubEntityTypeConfig:: |
public | function |
Check if this bundle is enabled. Overrides ContentHubEntityTypeConfigInterface:: |
|
ContentHubEntityTypeConfig:: |
public | function |
Sets the bundles. Overrides ContentHubEntityTypeConfigInterface:: |
|
ContentHubEntityTypeConfig:: |
public | function |
Sets the preview image field for a specific bundle. Overrides ContentHubEntityTypeConfigInterface:: |
|
ContentHubEntityTypeConfig:: |
public | function |
Sets the preview image style for a specific bundle. Overrides ContentHubEntityTypeConfigInterface:: |
|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | Aliased as: traitSleep | 1 |
DependencySerializationTrait:: |
public | function | 2 | |
DependencyTrait:: |
protected | property | The object's dependencies. | |
DependencyTrait:: |
protected | function | Adds multiple dependencies. | |
DependencyTrait:: |
protected | function | Adds a dependency. Aliased as: addDependencyTrait | |
EntityBase:: |
protected | property | Boolean indicating whether the entity should be forced to be new. | |
EntityBase:: |
protected | property | The entity type. | |
EntityBase:: |
protected | property | A typed data object wrapping this entity. | |
EntityBase:: |
public | function |
Checks data value access. Overrides AccessibleInterface:: |
1 |
EntityBase:: |
public | function |
Gets the bundle of the entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
public static | function |
Constructs a new entity object, without permanently saving it. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Deletes an entity permanently. Overrides EntityInterface:: |
2 |
EntityBase:: |
public | function |
Enforces an entity to be new. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | Gets the entity manager. | |
EntityBase:: |
protected | function | Gets the entity type bundle info service. | |
EntityBase:: |
public | function |
The cache contexts associated with this object. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
The maximum age for which this object may be cached. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
The cache tags associated with this object. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
Gets the key that is used to store configuration dependencies. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the entity type definition. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the ID of the type of the entity. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | The list cache tags to invalidate for this entity. | |
EntityBase:: |
public | function |
Gets a typed data object for this entity object. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Indicates if a link template exists for a given key. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the identifier. Overrides EntityInterface:: |
11 |
EntityBase:: |
public | function |
Gets the label of the entity. Overrides EntityInterface:: |
6 |
EntityBase:: |
public | function |
Gets the language of the entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
protected | function | Gets the language manager. | |
EntityBase:: |
protected | function | Gets an array link templates. | 1 |
EntityBase:: |
public static | function |
Loads an entity. Overrides EntityInterface:: |
|
EntityBase:: |
public static | function |
Loads one or more entities. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Acts on a created entity before hooks are invoked. Overrides EntityInterface:: |
4 |
EntityBase:: |
public static | function |
Acts on deleted entities before the delete hook is invoked. Overrides EntityInterface:: |
16 |
EntityBase:: |
public static | function |
Acts on loaded entities. Overrides EntityInterface:: |
2 |
EntityBase:: |
public | function |
Acts on a saved entity before the insert or update hook is invoked. Overrides EntityInterface:: |
14 |
EntityBase:: |
public static | function |
Changes the values of an entity before it is created. Overrides EntityInterface:: |
5 |
EntityBase:: |
public | function |
Gets a list of entities referenced by this entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
public | function |
Generates the HTML for a link to this entity. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets a list of URI relationships supported by this entity. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | Gets an array of placeholders for this entity. | 2 |
EntityBase:: |
public | function |
Gets the entity UUID (Universally Unique Identifier). Overrides EntityInterface:: |
1 |
EntityBase:: |
protected | function | Gets the UUID generator. | |
PluginDependencyTrait:: |
protected | function | Calculates and adds dependencies of a specific plugin instance. | 1 |
PluginDependencyTrait:: |
protected | function | Calculates and returns dependencies of a specific plugin instance. | |
PluginDependencyTrait:: |
protected | function | Wraps the module handler. | 1 |
PluginDependencyTrait:: |
protected | function | Wraps the theme handler. | 1 |
RefinableCacheableDependencyTrait:: |
public | function | 1 | |
RefinableCacheableDependencyTrait:: |
public | function | ||
RefinableCacheableDependencyTrait:: |
public | function | ||
RefinableCacheableDependencyTrait:: |
public | function | ||
SynchronizableEntityTrait:: |
protected | property | Whether this entity is being created, updated or deleted through a synchronization process. | |
SynchronizableEntityTrait:: |
public | function | ||
SynchronizableEntityTrait:: |
public | function |