/** * {@inheritdoc} */ protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) { if ($operation == 'delete') { $field_storage_entity = $entity->getFieldStorageDefinition(); if ($field_storage_entity->isLocked()) { return AccessResult::forbidden()->addCacheableDependency($field_storage_entity); } else { return AccessResult::allowedIfHasPermission($account, 'administer ' . $entity->getTargetEntityTypeId() . ' fields')->addCacheableDependency($field_storage_entity); } } return AccessResult::allowedIfHasPermission($account, 'administer ' . $entity->getTargetEntityTypeId() . ' fields'); }
/** * {@inheritdoc} */ public function cloneEntity(EntityInterface $field_config, EntityInterface $cloned_field_config, $properties = []) { /** @var \Drupal\field\Entity\FieldConfig $field_config */ /** @var \Drupal\field\Entity\FieldConfig $cloned_field_config */ /** @var \Drupal\field\Entity\FieldStorageConfig $cloned_field_storage */ if ((!isset($properties['skip_storage']) || !$properties['skip_storage'])) { $cloned_field_storage = $field_config->getFieldStorageDefinition()->createDuplicate(); $cloned_field_storage->set('field_name', $properties['id']); $cloned_field_storage->set('id', $properties['id'] . '.' . $cloned_field_storage->getTargetEntityTypeId()); $cloned_field_storage->save(); } unset($properties['skip_storage']); $properties['field_name'] = $properties['id']; $properties['id'] = $cloned_field_config->getTargetEntityTypeId() . '.' . $cloned_field_config->getTargetBundle() . '.' . $properties['id']; return parent::cloneEntity($field_config, $cloned_field_config, $properties); }
/** * {@inheritdoc} */ public function buildRow(EntityInterface $field_storage) { if ($field_storage->isLocked()) { $row['class'] = array('menu-disabled'); $row['data']['id'] = $this->t('@field_name (Locked)', array('@field_name' => $field_storage->getName())); } else { $row['data']['id'] = $field_storage->getName(); } $field_type = $this->fieldTypes[$field_storage->getType()]; $row['data']['type'] = $this->t('@type (module: @module)', array('@type' => $field_type['label'], '@module' => $field_type['provider'])); $usage = array(); foreach ($field_storage->getBundles() as $bundle) { $entity_type_id = $field_storage->getTargetEntityTypeId(); if ($route_info = FieldUI::getOverviewRouteInfo($entity_type_id, $bundle)) { $usage[] = \Drupal::l($this->bundles[$entity_type_id][$bundle]['label'], $route_info); } else { $usage[] = $this->bundles[$entity_type_id][$bundle]['label']; } } $usage_escaped = ''; $separator = ''; foreach ($usage as $usage_item) { $usage_escaped .= $separator . SafeMarkup::escape($usage_item); $separator = ', '; } $row['data']['usage'] = SafeMarkup::set($usage_escaped); return $row; }
/** * {@inheritdoc} */ public function buildRow(EntityInterface $entity) { $row = [ 'data' => [ 'label' => $entity->label(), 'target_type' => $this->entityManager->getDefinition($entity->getTargetEntityTypeId())->getLabel(), 'handler' => $entity->getHandlerPlugin()->getPluginDefinition()['title'], 'items' => $this->getQueueItemsStatus($entity), ] + parent::buildRow($entity), 'title' => $this->t('Machine name: @name', array('@name' => $entity->id())), ]; return $row; }
/** * {@inheritdoc} */ public function buildRow(EntityInterface $field_storage) { if ($field_storage->isLocked()) { $row['class'] = array('menu-disabled'); $row['data']['id'] = $this->t('@field_name (Locked)', array('@field_name' => $field_storage->getName())); } else { $row['data']['id'] = $field_storage->getName(); } $field_type = $this->fieldTypes[$field_storage->getType()]; $row['data']['type'] = $this->t('@type (module: @module)', array('@type' => $field_type['label'], '@module' => $field_type['provider'])); $usage = array(); foreach ($field_storage->getBundles() as $bundle) { $entity_type_id = $field_storage->getTargetEntityTypeId(); if ($route_info = FieldUI::getOverviewRouteInfo($entity_type_id, $bundle)) { $usage[] = \Drupal::l($this->bundles[$entity_type_id][$bundle]['label'], $route_info); } else { $usage[] = $this->bundles[$entity_type_id][$bundle]['label']; } } $row['data']['usage']['data'] = ['#theme' => 'item_list', '#items' => $usage, '#context' => ['list_style' => 'comma-list']]; return $row; }