You are here

class EntityReferenceTermMergeSynonymsBehavior in Term Merge 7

Synonyms "term_merge" behavior for 'entityreference' field type.

Hierarchy

Expanded class hierarchy of EntityReferenceTermMergeSynonymsBehavior

1 string reference to 'EntityReferenceTermMergeSynonymsBehavior'
term_merge_synonyms_provider_field_behavior_implementation_info in ./term_merge.module
Implements hook_synonyms_provider_field_behavior_implementation_info().

File

includes/EntityReferenceTermMergeSynonymsBehavior.class.inc, line 11
Definition of EntityReferenceTermMergeSynonymsBehavior class.

View source
class EntityReferenceTermMergeSynonymsBehavior extends EntityReferenceSynonymsBehavior implements TermMergeSynonymsBehavior {

  /**
   * Add an entity as a synonym into another entity.
   *
   * Basically this method should be called when you want to add some entity as
   * a synonym to another entity (for example when you merge one entity into
   * another and besides merging want to add synonym of the merged entity into
   * the trunk entity). You should update $trunk_entity in such a way that it
   * holds $synonym_entity as a synonym (it all depends on how data is stored in
   * your behavior implementation, but probably you will store entity label or
   * its ID as you cannot literally store an entity inside of another entity).
   * If entity of type $synonym_entity_type cannot be converted into a format
   * expected by your behavior implementation, just do nothing.
   *
   * @param object $trunk_entity
   *   Entity into which another one should be added as synonym
   * @param object $synonym_entity
   *   Fully loaded entity object which has to be added as synonym
   * @param string $synonym_entity_type
   *   Entity type of $synonym_entity
   */
  public function mergeTerm($trunk_entity, $synonym_entity, $synonym_entity_type) {

    // Firstly validating that this entity reference is able to reference that
    // type of entity.
    $expected_synonym_entity_type = $this->field['settings']['target_type'];
    $items = $this
      ->entityItems($trunk_entity);
    if ($expected_synonym_entity_type != $synonym_entity_type) {
      return;
    }
    $synonym_entity_id = entity_extract_ids($synonym_entity_type, $synonym_entity);
    $synonym_entity_id = $synonym_entity_id[0];
    $items[] = array(
      'target_id' => $synonym_entity_id,
    );
    $trunk_entity->{$this->field['field_name']}[LANGUAGE_NONE] = $this
      ->uniqueItems($items, array(
      'target_id',
    ));
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AbstractFieldSynonymsBehavior::$field protected property Field definition array on which this provider was initialized.
AbstractFieldSynonymsBehavior::$instance protected property Field instance definition on which this provider was initialized.
AbstractFieldSynonymsBehavior::entityItems protected function Retrieve items of the underlying field in this behavior implementation.
AbstractFieldSynonymsBehavior::featuresExportPipe public function Collect info on features pipe during invocation of hook_features_export(). Overrides AbstractSynonymsBehavior::featuresExportPipe
AbstractFieldSynonymsBehavior::uniqueItems protected function Filter $items only to contain unique values.
AbstractFieldSynonymsBehavior::__construct public function Overrides AbstractSynonymsBehavior::__construct
AbstractSynonymsBehavior::$behavior_implementation protected property Behavior implementation on which this class was initialized.
AbstractSynonymsBehavior::COLUMN_ENTITY_ID_PLACEHOLDER constant Constant which denotes placeholder of an entity ID column.
AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER constant Constant which denotes placeholder of a synonym column.
AbstractSynonymsBehavior::synonymsFindProcessCondition protected function Process condition in 'synonymsFind' method.
EntityReferenceSynonymsBehavior::extractSynonyms public function Extract synonyms from an entity within a specific behavior implementation. Overrides SynonymsBehavior::extractSynonyms
EntityReferenceSynonymsBehavior::mergeEntityAsSynonym public function Add an entity as a synonym into another entity. Overrides SynonymsBehavior::mergeEntityAsSynonym
EntityReferenceSynonymsBehavior::synonymsFind public function Look up entities by their synonyms within a behavior implementation. Overrides SynonymsBehavior::synonymsFind
EntityReferenceTermMergeSynonymsBehavior::mergeTerm public function Add an entity as a synonym into another entity. Overrides TermMergeSynonymsBehavior::mergeTerm