Created
September 18, 2017 07:58
-
-
Save cyberlex404/5952c1df06692f5c043a2f5eac0d7b53 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| namespace Drupal\dump_map\Entity; | |
| use Drupal\Core\Entity\EntityStorageInterface; | |
| use Drupal\Core\Field\BaseFieldDefinition; | |
| use Drupal\Core\Entity\ContentEntityBase; | |
| use Drupal\Core\Entity\EntityChangedTrait; | |
| use Drupal\Core\Entity\EntityTypeInterface; | |
| use Drupal\user\UserInterface; | |
| /** | |
| * Defines the Trash entity. | |
| * | |
| * @ingroup dump_map | |
| * | |
| * @ContentEntityType( | |
| * id = "trash", | |
| * label = @Translation("Trash"), | |
| * handlers = { | |
| * "view_builder" = "Drupal\Core\Entity\EntityViewBuilder", | |
| * "list_builder" = "Drupal\dump_map\TrashListBuilder", | |
| * "views_data" = "Drupal\dump_map\Entity\TrashViewsData", | |
| * "translation" = "Drupal\dump_map\TrashTranslationHandler", | |
| * | |
| * "form" = { | |
| * "default" = "Drupal\dump_map\Form\TrashForm", | |
| * "add" = "Drupal\dump_map\Form\TrashForm", | |
| * "edit" = "Drupal\dump_map\Form\TrashForm", | |
| * "delete" = "Drupal\dump_map\Form\TrashDeleteForm", | |
| * }, | |
| * "access" = "Drupal\dump_map\TrashAccessControlHandler", | |
| * "route_provider" = { | |
| * "html" = "Drupal\dump_map\TrashHtmlRouteProvider", | |
| * }, | |
| * }, | |
| * base_table = "trash", | |
| * data_table = "trash_field_data", | |
| * translatable = TRUE, | |
| * admin_permission = "administer trash entities", | |
| * entity_keys = { | |
| * "id" = "id", | |
| * "label" = "name", | |
| * "uuid" = "uuid", | |
| * "uid" = "user_id", | |
| * "langcode" = "langcode", | |
| * "status" = "status", | |
| * }, | |
| * links = { | |
| * "canonical" = "/admin/structure/trash/{trash}", | |
| * "add-form" = "/admin/structure/trash/add", | |
| * "edit-form" = "/admin/structure/trash/{trash}/edit", | |
| * "delete-form" = "/admin/structure/trash/{trash}/delete", | |
| * "collection" = "/admin/structure/trash", | |
| * }, | |
| * field_ui_base_route = "trash.settings" | |
| * ) | |
| */ | |
| class Trash extends ContentEntityBase implements TrashInterface { | |
| use EntityChangedTrait; | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function preCreate(EntityStorageInterface $storage_controller, array &$values) { | |
| parent::preCreate($storage_controller, $values); | |
| $values += [ | |
| 'user_id' => \Drupal::currentUser()->id(), | |
| ]; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getName() { | |
| return $this->get('name')->value; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function setName($name) { | |
| $this->set('name', $name); | |
| return $this; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getCreatedTime() { | |
| return $this->get('created')->value; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function setCreatedTime($timestamp) { | |
| $this->set('created', $timestamp); | |
| return $this; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getOwner() { | |
| return $this->get('user_id')->entity; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getOwnerId() { | |
| return $this->get('user_id')->target_id; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function setOwnerId($uid) { | |
| $this->set('user_id', $uid); | |
| return $this; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function setOwner(UserInterface $account) { | |
| $this->set('user_id', $account->id()); | |
| return $this; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function isPublished() { | |
| return (bool) $this->getEntityKey('status'); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function setPublished($published) { | |
| $this->set('status', $published ? TRUE : FALSE); | |
| return $this; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { | |
| $fields = parent::baseFieldDefinitions($entity_type); | |
| $fields['user_id'] = BaseFieldDefinition::create('entity_reference') | |
| ->setLabel(t('Authored by')) | |
| ->setDescription(t('The user ID of author of the Trash entity.')) | |
| ->setRevisionable(TRUE) | |
| ->setSetting('target_type', 'user') | |
| ->setSetting('handler', 'default') | |
| ->setTranslatable(TRUE) | |
| ->setDisplayOptions('view', [ | |
| 'label' => 'hidden', | |
| 'type' => 'author', | |
| 'weight' => 0, | |
| ]) | |
| ->setDisplayOptions('form', [ | |
| 'type' => 'entity_reference_autocomplete', | |
| 'weight' => 5, | |
| 'settings' => [ | |
| 'match_operator' => 'CONTAINS', | |
| 'size' => '60', | |
| 'autocomplete_type' => 'tags', | |
| 'placeholder' => '', | |
| ], | |
| ]) | |
| ->setDisplayConfigurable('form', TRUE) | |
| ->setDisplayConfigurable('view', TRUE); | |
| $fields['name'] = BaseFieldDefinition::create('string') | |
| ->setLabel(t('Name')) | |
| ->setDescription(t('The name of the Trash entity.')) | |
| ->setSettings([ | |
| 'max_length' => 255, | |
| 'text_processing' => 0, | |
| ]) | |
| ->setDefaultValue('') | |
| ->setDisplayOptions('view', [ | |
| 'label' => 'above', | |
| 'type' => 'string', | |
| 'weight' => -4, | |
| ]) | |
| ->setDisplayOptions('form', [ | |
| 'type' => 'string_textfield', | |
| 'weight' => -4, | |
| ]) | |
| ->setDisplayConfigurable('form', TRUE) | |
| ->setDisplayConfigurable('view', TRUE); | |
| $fields['point'] = BaseFieldDefinition::create('geofield') | |
| ->setLabel(t('Point')) | |
| ->setRequired(TRUE) | |
| ->setDisplayOptions('view', [ | |
| 'label' => 'hidden', | |
| 'type' => 'geofield_latlon', | |
| 'weight' => 0, | |
| 'settings' => [ | |
| 'output_format' => 'decimal', | |
| ], | |
| ]) | |
| ->setDisplayOptions('form', [ | |
| 'type' => 'geofield_latlon', | |
| 'weight' => 6, | |
| 'settings' => [ | |
| 'html5_geolocation' => TRUE, | |
| ], | |
| ]) | |
| ->setDisplayConfigurable('form', TRUE) | |
| ->setDisplayConfigurable('view', TRUE); | |
| $fields['description'] = BaseFieldDefinition::create('text_long') | |
| ->setLabel(t('Description')) | |
| ->setTranslatable(TRUE) | |
| ->setRequired(TRUE) | |
| ->setDisplayOptions('view', [ | |
| 'label' => 'hidden', | |
| 'type' => 'text_default', | |
| 'weight' => 0, | |
| ]) | |
| ->setDisplayConfigurable('view', TRUE) | |
| ->setDisplayOptions('form', [ | |
| 'type' => 'text_textfield', | |
| 'weight' => 10, | |
| ]) | |
| ->setDisplayConfigurable('form', TRUE); | |
| $fields['check'] = BaseFieldDefinition::create('boolean') | |
| ->setLabel(t('Check status')) | |
| ->setDescription(t('A boolean indicating check the Trash.')) | |
| ->setDefaultValue(FALSE); | |
| $fields['cleaned'] = BaseFieldDefinition::create('boolean') | |
| ->setLabel(t('Cleaned status')) | |
| ->setDescription(t('A boolean indicating cleaned the Trash.')) | |
| ->setDefaultValue(FALSE); | |
| $fields['status'] = BaseFieldDefinition::create('boolean') | |
| ->setLabel(t('Publishing status')) | |
| ->setDescription(t('A boolean indicating whether the Trash is published.')) | |
| ->setDefaultValue(TRUE); | |
| $fields['created'] = BaseFieldDefinition::create('created') | |
| ->setLabel(t('Created')) | |
| ->setDescription(t('The time that the entity was created.')); | |
| $fields['changed'] = BaseFieldDefinition::create('changed') | |
| ->setLabel(t('Changed')) | |
| ->setDescription(t('The time that the entity was last edited.')); | |
| return $fields; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment