当前位置: 首页>>代码示例>>PHP>>正文


PHP EntityTypeManagerInterface::hasHandler方法代码示例

本文整理汇总了PHP中Drupal\Core\Entity\EntityTypeManagerInterface::hasHandler方法的典型用法代码示例。如果您正苦于以下问题:PHP EntityTypeManagerInterface::hasHandler方法的具体用法?PHP EntityTypeManagerInterface::hasHandler怎么用?PHP EntityTypeManagerInterface::hasHandler使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Drupal\Core\Entity\EntityTypeManagerInterface的用法示例。


在下文中一共展示了EntityTypeManagerInterface::hasHandler方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getDerivativeDefinitions

 /**
  * {@inheritdoc}
  */
 public function getDerivativeDefinitions($base_plugin_definition)
 {
     /**
      * @var \Drupal\Core\Entity\EntityTypeInterface $entity_type
      */
     foreach ($this->entityManager->getDefinitions() as $entity_type_id => $entity_type) {
         // Just add support for entity types which have a views integration.
         if (($base_table = $entity_type->getBaseTable()) && $this->viewsData->get($base_table) && $this->entityManager->hasHandler($entity_type_id, 'view_builder')) {
             $entity_views_tables = [$base_table => $this->viewsData->get($base_table)];
             if ($data_table = $entity_type->getDataTable()) {
                 $entity_views_tables[$data_table] = $this->viewsData->get($data_table);
             }
             foreach ($entity_views_tables as $table_id => $entity_views_table) {
                 foreach ($entity_views_table as $key => $field_info) {
                     if ($this->isDateField($field_info)) {
                         $derivative = ['replacements' => ['entity_label' => $entity_type->getLabel(), 'entity_type' => $entity_type_id, 'field_id' => $field_info['entity field'], 'base_table' => $table_id, 'base_field' => $this->getTableBaseField($entity_views_table), 'default_field_id' => $this->getTableDefaultField($entity_views_table, $entity_type_id), 'field_label' => $field_info['title']], 'view_template_id' => 'calendar_base_field'];
                         $this->setDerivative($derivative, $base_plugin_definition);
                     }
                 }
             }
             // @todo Loop through all fields attached to this entity type.
             // The have different base tables that are joined to this table.
             $this->setConfigurableFieldsDerivatives($entity_type, $base_plugin_definition);
         }
     }
     return $this->derivatives;
 }
开发者ID:CIGIHub,项目名称:bsia-drupal8,代码行数:30,代码来源:ViewsFieldTemplate.php

示例2: getViewsData

 /**
  * Returns the views data.
  *
  * @return array
  *   The views data.
  */
 public function getViewsData()
 {
     $data = [];
     $data['content_revision_tracker']['table']['group'] = $this->t('Content moderation (tracker)');
     $data['content_revision_tracker']['entity_type'] = ['title' => $this->t('Entity type'), 'field' => ['id' => 'standard'], 'filter' => ['id' => 'string'], 'argument' => ['id' => 'string'], 'sort' => ['id' => 'standard']];
     $data['content_revision_tracker']['entity_id'] = ['title' => $this->t('Entity ID'), 'field' => ['id' => 'standard'], 'filter' => ['id' => 'numeric'], 'argument' => ['id' => 'numeric'], 'sort' => ['id' => 'standard']];
     $data['content_revision_tracker']['langcode'] = ['title' => $this->t('Entity language'), 'field' => ['id' => 'standard'], 'filter' => ['id' => 'language'], 'argument' => ['id' => 'language'], 'sort' => ['id' => 'standard']];
     $data['content_revision_tracker']['revision_id'] = ['title' => $this->t('Latest revision ID'), 'field' => ['id' => 'standard'], 'filter' => ['id' => 'numeric'], 'argument' => ['id' => 'numeric'], 'sort' => ['id' => 'standard']];
     $entity_types_with_moderation = array_filter($this->entityTypeManager->getDefinitions(), function (EntityTypeInterface $type) {
         return $this->moderationInformation->canModerateEntitiesOfEntityType($type);
     });
     // Add a join for each entity type to the content_revision_tracker table.
     foreach ($entity_types_with_moderation as $entity_type_id => $entity_type) {
         /** @var \Drupal\views\EntityViewsDataInterface $views_data */
         // We need the views_data handler in order to get the table name later.
         if ($this->entityTypeManager->hasHandler($entity_type_id, 'views_data') && ($views_data = $this->entityTypeManager->getHandler($entity_type_id, 'views_data'))) {
             // Add a join from the entity base table to the revision tracker table.
             $base_table = $views_data->getViewsTableForEntityType($entity_type);
             $data['content_revision_tracker']['table']['join'][$base_table] = ['left_field' => $entity_type->getKey('id'), 'field' => 'entity_id', 'extra' => [['field' => 'entity_type', 'value' => $entity_type_id]]];
             // Some entity types might not be translatable.
             if ($entity_type->hasKey('langcode')) {
                 $data['content_revision_tracker']['table']['join'][$base_table]['extra'][] = ['field' => 'langcode', 'left_field' => $entity_type->getKey('langcode'), 'operation' => '='];
             }
             // Add a relationship between the revision tracker table to the latest
             // revision on the entity revision table.
             $data['content_revision_tracker']['latest_revision__' . $entity_type_id] = ['title' => $this->t('@label latest revision', ['@label' => $entity_type->getLabel()]), 'group' => $this->t('@label revision', ['@label' => $entity_type->getLabel()]), 'relationship' => ['id' => 'standard', 'label' => $this->t('@label latest revision', ['@label' => $entity_type->getLabel()]), 'base' => $this->getRevisionViewsTableForEntityType($entity_type), 'base field' => $entity_type->getKey('revision'), 'relationship field' => 'revision_id', 'extra' => [['left_field' => 'entity_type', 'value' => $entity_type_id]]]];
             // Some entity types might not be translatable.
             if ($entity_type->hasKey('langcode')) {
                 $data['content_revision_tracker']['latest_revision__' . $entity_type_id]['relationship']['extra'][] = ['left_field' => 'langcode', 'field' => $entity_type->getKey('langcode'), 'operation' => '='];
             }
         }
     }
     // Provides a relationship from moderated entity to its moderation state
     // entity.
     $content_moderation_state_entity_type = \Drupal::entityTypeManager()->getDefinition('content_moderation_state');
     $content_moderation_state_entity_base_table = $content_moderation_state_entity_type->getDataTable() ?: $content_moderation_state_entity_type->getBaseTable();
     $content_moderation_state_entity_revision_base_table = $content_moderation_state_entity_type->getRevisionDataTable() ?: $content_moderation_state_entity_type->getRevisionTable();
     foreach ($entity_types_with_moderation as $entity_type_id => $entity_type) {
         $table = $entity_type->getDataTable() ?: $entity_type->getBaseTable();
         $data[$table]['moderation_state'] = ['title' => t('Moderation state'), 'relationship' => ['id' => 'standard', 'label' => $this->t('@label moderation state', ['@label' => $entity_type->getLabel()]), 'base' => $content_moderation_state_entity_base_table, 'base field' => 'content_entity_id', 'relationship field' => $entity_type->getKey('id'), 'join_extra' => [['field' => 'content_entity_type_id', 'value' => $entity_type_id], ['field' => 'content_entity_revision_id', 'left_field' => $entity_type->getKey('revision')]]]];
         $revision_table = $entity_type->getRevisionDataTable() ?: $entity_type->getRevisionTable();
         $data[$revision_table]['moderation_state'] = ['title' => t('Moderation state'), 'relationship' => ['id' => 'standard', 'label' => $this->t('@label moderation state', ['@label' => $entity_type->getLabel()]), 'base' => $content_moderation_state_entity_revision_base_table, 'base field' => 'content_entity_revision_id', 'relationship field' => $entity_type->getKey('revision'), 'join_extra' => [['field' => 'content_entity_type_id', 'value' => $entity_type_id]]]];
     }
     return $data;
 }
开发者ID:eigentor,项目名称:tommiblog,代码行数:51,代码来源:ViewsData.php

示例3: getDerivativeDefinitions

 /**
  * {@inheritdoc}
  */
 public function getDerivativeDefinitions($base_plugin_definition)
 {
     foreach ($this->entityTypeManager->getDefinitions() as $entity_type_id => $entity_type) {
         // Just add support for entity types which have a views integration.
         if (($base_table = $entity_type->getBaseTable()) && $this->viewsData->get($base_table) && $this->entityTypeManager->hasHandler($entity_type_id, 'view_builder')) {
             $this->derivatives[$entity_type_id] = array('id' => 'ds_entity:' . $entity_type_id, 'provider' => 'ds', 'title' => 'Display Suite: ' . $entity_type->getLabel(), 'help' => t('Display the @label', array('@label' => $entity_type->getLabel())), 'base' => array($entity_type->getDataTable() ?: $entity_type->getBaseTable()), 'entity_type' => $entity_type_id, 'display_types' => array('normal'), 'class' => $base_plugin_definition['class']);
         }
     }
     return $this->derivatives;
 }
开发者ID:neeravbm,项目名称:unify-d8,代码行数:13,代码来源:DsEntityRow.php


注:本文中的Drupal\Core\Entity\EntityTypeManagerInterface::hasHandler方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。