From 3128d0cabf4c0fb2e235d6dd73ef8632fb30064a Mon Sep 17 00:00:00 2001 From: naomi Date: Fri, 6 Apr 2018 15:34:03 +0200 Subject: [PATCH] Profile labels now read "First Name Last Name - Profile Type" --- modules/zencrm_entities/src/Entity/Person.php | 2 ++ .../zencrm_entities/src/Entity/Profile.php | 22 +++---------------- .../zencrm_entities/zencrm_entities.module | 14 ++++++++++++ 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/modules/zencrm_entities/src/Entity/Person.php b/modules/zencrm_entities/src/Entity/Person.php index 90b6b3f..63c0e96 100644 --- a/modules/zencrm_entities/src/Entity/Person.php +++ b/modules/zencrm_entities/src/Entity/Person.php @@ -208,11 +208,13 @@ class Person extends RevisionableContentEntityBase implements PersonInterface { ]) ->setTranslatable(TRUE); + // This field is computed in a presave hook. $fields['full_name'] = BaseFieldDefinition::create('string') ->setLabel(t('Full Name')) ->setDescription(t('The full name of the person.')) ->setRevisionable(TRUE); + // This field is computed in a presave hook. $fields['first_and_last_name'] = BaseFieldDefinition::create('string') ->setLabel(t('First and Last Name')) ->setDescription(t('The first and last name of the person. Used for searching and autocomplete')) diff --git a/modules/zencrm_entities/src/Entity/Profile.php b/modules/zencrm_entities/src/Entity/Profile.php index 1c12222..813d9ed 100644 --- a/modules/zencrm_entities/src/Entity/Profile.php +++ b/modules/zencrm_entities/src/Entity/Profile.php @@ -253,27 +253,11 @@ class Profile extends RevisionableContentEntityBase implements ProfileInterface 'weight' => 0, ]); + // This field is computed in a presave hook. $fields['name'] = BaseFieldDefinition::create('string') ->setLabel(t('Name')) - ->setDescription(t('The name of the Profile entity.')) - ->setRevisionable(TRUE) - ->setSettings([ - 'max_length' => 50, - '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) - ->setRequired(TRUE); + ->setDescription(t('The name of this profile instance.')) + ->setRevisionable(TRUE); $fields['status'] = BaseFieldDefinition::create('boolean') ->setLabel(t('Publishing status')) diff --git a/modules/zencrm_entities/zencrm_entities.module b/modules/zencrm_entities/zencrm_entities.module index 78eda19..c847905 100644 --- a/modules/zencrm_entities/zencrm_entities.module +++ b/modules/zencrm_entities/zencrm_entities.module @@ -26,6 +26,20 @@ function zencrm_entities_person_presave($entity) { } +/** + * Implements hook_ENTITY_TYPE_presave(). + * Computes the name field from the full name of the referenced person + * plus the profile type. + */ +function zencrm_entities_profile_presave($entity) { + $person_id = $entity->person->first()->getValue()['target_id']; + $person = \Drupal\zencrm_entities\Entity\Person::load($person_id); + $full_name = $person->full_name->getString(); + $bundle_name = $entity->type->entity->label(); + $entity->set('name', $full_name . ' - ' . $bundle_name); +} + + /** * Implements hook_help(). */