Files
edlp_d8/sites/all/modules/contrib/taxonomy/synonyms/synonyms.module
T

48 lines
1.3 KiB
Plaintext

<?php
/**
* @file
* Provide synonyms feature for content entities.
*/
/**
* Implements hook_entity_base_field_info().
*/
function synonyms_entity_base_field_info(\Drupal\Core\Entity\EntityTypeInterface $entity_type) {
if ($entity_type instanceof \Drupal\Core\Entity\ContentEntityTypeInterface) {
$fields = [];
$fields['synonyms'] = \Drupal\Core\Field\BaseFieldDefinition::create('string')
->setLabel(t('Entity synonyms'))
->setDescription(t('A list of known entity synonyms.'))
->setComputed(TRUE)
->setClass('\Drupal\synonyms\Plugin\SynonymsFieldItemList');
return $fields;
}
}
/**
* Implements hook_views_data().
*/
function synonyms_views_data() {
$data = [];
foreach (\Drupal::entityTypeManager()->getDefinitions() as $entity_type) {
if ($entity_type instanceof \Drupal\Core\Entity\ContentEntityTypeInterface && $entity_type->getBaseTable() && $entity_type->getKey('id')) {
$data[$entity_type->getBaseTable()]['synonyms'] = [
'title' => t('Synonyms of @entity_type', [
'@entity_type' => $entity_type->getLowercaseLabel(),
]),
'filter' => [
'id' => 'synonyms_entity',
'real field' => $entity_type->getKey('id'),
'entity_type' => $entity_type->id(),
],
];
}
}
return $data;
}