Added full_name and first_and_last_name fields to the Person entity type.
The full name is now the entity label. The first_and_last_name is so that it can be used in search and autocomplete.
This commit is contained in:
parent
7ac39fc385
commit
6cf7d5ee6f
@ -49,6 +49,7 @@ use Drupal\user\UserInterface;
|
||||
* "uid" = "user_id",
|
||||
* "langcode" = "langcode",
|
||||
* "status" = "status",
|
||||
* "label" = "full_name",
|
||||
* },
|
||||
* links = {
|
||||
* "canonical" = "/zencrm/person/{person}",
|
||||
@ -192,6 +193,16 @@ class Person extends RevisionableContentEntityBase implements PersonInterface {
|
||||
->setSetting('handler', 'default')
|
||||
->setTranslatable(TRUE);
|
||||
|
||||
$fields['full_name'] = BaseFieldDefinition::create('string')
|
||||
->setLabel(t('Full Name'))
|
||||
->setDescription(t('The full name of the person.'))
|
||||
->setRevisionable(TRUE);
|
||||
|
||||
$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'))
|
||||
->setRevisionable(TRUE);
|
||||
|
||||
$fields['first_name'] = BaseFieldDefinition::create('string')
|
||||
->setLabel(t('First Name'))
|
||||
->setDescription(t('First Name.'))
|
||||
|
@ -7,6 +7,25 @@
|
||||
|
||||
use Drupal\Core\Routing\RouteMatchInterface;
|
||||
|
||||
/**
|
||||
* Implements hook_ENTITY_TYPE_presave().
|
||||
* Computes the full_name field from first_name middle_names and last_name.
|
||||
* Computes the first_and_last_name field from first_name and last_name.
|
||||
*/
|
||||
function zencrm_entities_person_presave($entity) {
|
||||
$first_name = $entity->first_name->getString();
|
||||
$middle_names = $entity->middle_names->getString();
|
||||
$last_name = $entity->last_name->getString();
|
||||
if ($middle_names) {
|
||||
$middle_names .= ' ';
|
||||
}
|
||||
$first_and_last_name = $first_name . ' ' . $last_name;
|
||||
$full_name = $first_name . ' ' . $middle_names . $last_name;
|
||||
$entity->set('full_name', $full_name);
|
||||
$entity->set('first_and_last_name', $first_and_last_name);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Implements hook_help().
|
||||
*/
|
||||
|
Reference in New Issue
Block a user