You are here

class EntityTypeCount in Open Social 10.1.x

Same name and namespace in other branches
  1. 8.9 modules/custom/social_lets_connect/modules/social_lets_connect_usage/src/Plugin/ShareUsageDataPlugin/EntityTypeCount.php \Drupal\social_lets_connect_usage\Plugin\ShareUsageDataPlugin\EntityTypeCount
  2. 8.5 modules/custom/social_lets_connect/modules/social_lets_connect_usage/src/Plugin/ShareUsageDataPlugin/EntityTypeCount.php \Drupal\social_lets_connect_usage\Plugin\ShareUsageDataPlugin\EntityTypeCount
  3. 8.6 modules/custom/social_lets_connect/modules/social_lets_connect_usage/src/Plugin/ShareUsageDataPlugin/EntityTypeCount.php \Drupal\social_lets_connect_usage\Plugin\ShareUsageDataPlugin\EntityTypeCount
  4. 8.7 modules/custom/social_lets_connect/modules/social_lets_connect_usage/src/Plugin/ShareUsageDataPlugin/EntityTypeCount.php \Drupal\social_lets_connect_usage\Plugin\ShareUsageDataPlugin\EntityTypeCount
  5. 8.8 modules/custom/social_lets_connect/modules/social_lets_connect_usage/src/Plugin/ShareUsageDataPlugin/EntityTypeCount.php \Drupal\social_lets_connect_usage\Plugin\ShareUsageDataPlugin\EntityTypeCount
  6. 10.3.x modules/custom/social_lets_connect/modules/social_lets_connect_usage/src/Plugin/ShareUsageDataPlugin/EntityTypeCount.php \Drupal\social_lets_connect_usage\Plugin\ShareUsageDataPlugin\EntityTypeCount
  7. 10.0.x modules/custom/social_lets_connect/modules/social_lets_connect_usage/src/Plugin/ShareUsageDataPlugin/EntityTypeCount.php \Drupal\social_lets_connect_usage\Plugin\ShareUsageDataPlugin\EntityTypeCount
  8. 10.2.x modules/custom/social_lets_connect/modules/social_lets_connect_usage/src/Plugin/ShareUsageDataPlugin/EntityTypeCount.php \Drupal\social_lets_connect_usage\Plugin\ShareUsageDataPlugin\EntityTypeCount

Provides a 'EntityTypeCount' share usage data plugin.

Plugin annotation


@ShareUsageDataPlugin(
 id = "entity_type_count",
 label = @Translation("Entity Type Count"),
 setting = "entity_type_count",
 weight = -440,
)

Hierarchy

Expanded class hierarchy of EntityTypeCount

File

modules/custom/social_lets_connect/modules/social_lets_connect_usage/src/Plugin/ShareUsageDataPlugin/EntityTypeCount.php, line 18

Namespace

Drupal\social_lets_connect_usage\Plugin\ShareUsageDataPlugin
View source
class EntityTypeCount extends ShareUsageDataPluginBase {

  /**
   * Get the value.
   *
   * @return array
   *   $json array.
   */
  public function getValue() {
    $value = [];
    $definitions = $this->entityTypeManager
      ->getDefinitions();
    foreach ($definitions as $definition) {
      $entity_type_id = $definition
        ->id();

      // We don't need to add config entities.
      if ($definition instanceof ConfigEntityType) {
        continue;
      }
      $entity_bundle_info = \Drupal::service('entity_type.bundle.info');
      $bundle_info = $entity_bundle_info
        ->getBundleInfo($entity_type_id);
      $bundles = [];
      if (count($bundle_info) > 1) {
        foreach ($bundle_info as $bundle_id => $bundle_data) {

          // Suppress warning about unused variable.
          unset($bundle_data);
          $keys = $definition
            ->getKeys();
          $bundle_key = $keys['bundle'] === NULL ? 'bundle' : $keys['bundle'];
          $query = \Drupal::entityQuery($entity_type_id);
          $query
            ->condition($bundle_key, $bundle_id);
          $query
            ->count();
          $count = $query
            ->execute();
          $row = [
            'bundle' => $bundle_id,
            'count' => $count,
          ];
          $bundles[] = $row;
        }
      }
      $storage = $this->entityTypeManager
        ->getStorage($entity_type_id);
      $query = $storage
        ->getAggregateQuery();
      $query
        ->count();
      $count = $query
        ->execute();
      $entity = [
        'entity_type' => $entity_type_id,
        'count' => $count,
        'bundles' => $bundles,
      ];
      $value[$entity_type_id] = $entity;
    }
    return $value;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
EntityTypeCount::getValue public function Get the value. Overrides ShareUsageDataPluginBase::getValue
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 2
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
ShareUsageDataPluginBase::$config public property The config.
ShareUsageDataPluginBase::$entityTypeManager public property The entity type manager.
ShareUsageDataPluginBase::create public static function The create method. Overrides ContainerFactoryPluginInterface::create
ShareUsageDataPluginBase::enabled public function Check if this plugin should be enabled. Overrides ShareUsageDataPluginInterface::enabled
ShareUsageDataPluginBase::__construct public function UserExportPluginBase constructor. Overrides PluginBase::__construct
StringTranslationTrait::$stringTranslation protected property The string translation service. 4
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.