subentity-1.x-dev/templates/generator/subentity.php.twig

templates/generator/subentity.php.twig
<?php

namespace Drupal\{{ machine_name }}\Entity;

use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\subentity\Entity\SubEntityBase;

/**
 * Defines the {{ label }} subentity.
 *
 * @ContentEntityType(
 *   id = "{{ entity_name }}",
 *   label = @Translation("{{ label }}"),
 *   handlers = {
 *     "view_builder" = "Drupal\Core\Entity\EntityViewBuilder",
 *     "list_builder" = "Drupal\subentity\Entity\Controller\ReferencedEntityListBuilder",
 *     "views_data" = "Drupal\views\EntityViewsData",
 *
 *     "form" = {
 *       "default" = "Drupal\subentity\Form\ReferencedEntityForm",
 *       "add" = "Drupal\subentity\Form\ReferencedEntityForm",
 *       "edit" = "Drupal\subentity\Form\ReferencedEntityForm",
 *       "delete" = "Drupal\Core\Entity\ContentEntityDeleteForm",
 *       "settings" = "Drupal\subentity\Form\EntitySettingsForm",
 *     },
 *     "access" = "Drupal\subentity\ReferencedEntityAccessControlHandler",
 *     "route_provider" = {
 *       "html" = "Drupal\subentity\EntityHtmlRouteProvider",
 *     },
 *     "parent" = "Drupal\subentity\Entity\EntityParentHandler",
 *   },
 *   base_table = "{{ entity_name }}",
 *   data_table = "{{ entity_name }}_field_data",
 *   revision_table = "{{ entity_name }}_revision",
 *   revision_data_table = "{{ entity_name }}_field_revision",
 *   translatable = TRUE,
 *   admin_permission = "administer subentities",
 *   entity_keys = {
 *     "id" = "id",
 *     "revision" = "revision_id",
 *     "label" = "title",
 *     "uuid" = "uuid",
 *     "langcode" = "langcode",
{% if bundle %}
 *     "bundle" = "bundle",
{% endif %}
 *   },
 *   links = {
 *     "canonical" = "/admin/content/{{ entity_name }}/{{ '{'~entity_name~'}' }}",
 *     "add-form" = "/admin/content/{{ entity_name }}/add",
 *     "edit-form" = "/admin/content/{{ entity_name }}/{{ '{'~entity_name~'}' }}/edit",
 *     "delete-form" = "/admin/content/{{ entity_name }}/{{ '{'~entity_name~'}' }}/delete",
 *   },
{% if bundle %}
 *   bundle_entity_type = "{{ entity_name }}_type",
 *   field_ui_base_route = "entity.{{ entity_name }}_type.edit_form"
{% else %}
 *   field_ui_base_route = "{{ entity_name }}.settings"
{% endif %}
 * )
 */
class {{ entity_class }} extends SubEntityBase {

  /**
   * {@inheritdoc}
   */
  public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
    $fields = parent::baseFieldDefinitions($entity_type);

    $fields['title'] = BaseFieldDefinition::create('string')
      ->setLabel(t('Title'))
      ->setRequired(TRUE)
      ->setSettings([
        'max_length' => 255,
        'text_processing' => 0,
      ])
      ->setTranslatable(TRUE)
      ->setRevisionable(TRUE)
      ->setDefaultValue('')
      ->setDisplayOptions('form', [
        'type'   => 'string_textfield',
        'weight' => -4,
      ])
      ->setDisplayConfigurable('form', TRUE)
      ->setDisplayOptions('view', [
        'label'  => 'hidden',
        'type'   => 'string',
        'weight' => -4,
      ])
      ->setDisplayConfigurable('view', TRUE);

    return $fields;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc