class TaxonomyTermReferenceTermMergeSynonymsBehavior in Term Merge 7
Synonyms "term_merge" behavior for 'taxonomy term reference' field type.
Hierarchy
- class \AbstractSynonymsBehavior implements SynonymsBehavior- class \AbstractFieldSynonymsBehavior- class \TaxonomySynonymsBehavior implements AutocompleteSynonymsBehavior, SelectSynonymsBehavior- class \TaxonomyTermReferenceTermMergeSynonymsBehavior implements TermMergeSynonymsBehavior
 
 
- class \TaxonomySynonymsBehavior implements AutocompleteSynonymsBehavior, SelectSynonymsBehavior
 
- class \AbstractFieldSynonymsBehavior
Expanded class hierarchy of TaxonomyTermReferenceTermMergeSynonymsBehavior
File
- includes/TaxonomyTermReferenceTermMergeSynonymsBehavior.class.inc, line 11 
- Definition of TaxonomyTermReferenceTermMergeSynonymsBehavior class.
View source
class TaxonomyTermReferenceTermMergeSynonymsBehavior extends TaxonomySynonymsBehavior 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) {
    // Taxonomy term reference supports only referencing of entity types
    // 'taxonomy_term'.. duh.
    if ($synonym_entity_type != 'taxonomy_term') {
      return;
    }
    $items = $this
      ->entityItems($trunk_entity);
    // Checking that $field is configured to reference the vocabulary of
    // $synonym_entity term.
    $is_allowed = FALSE;
    foreach ($this->field['settings']['allowed_values'] as $setting) {
      if ($synonym_entity->vocabulary_machine_name == $setting['vocabulary']) {
        if ($setting['parent'] == 0) {
          // No need to check parent property as there is no limitation on it.
          $is_allowed = TRUE;
          break;
        }
        else {
          foreach (taxonomy_get_parents_all($synonym_entity->tid) as $parent) {
            if ($parent->tid == $setting['parent']) {
              $is_allowed = TRUE;
              break 2;
            }
          }
        }
      }
    }
    if (!$is_allowed) {
      // Synonym term is from a vocabulary that is not expected by this field,
      // or under unexpected parent.
      return;
    }
    $items[] = array(
      'tid' => $synonym_entity->tid,
    );
    $trunk_entity->{$this->field['field_name']}[LANGUAGE_NONE] = $this
      ->uniqueItems($items, array(
      'tid',
    ));
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| AbstractFieldSynonymsBehavior:: | protected | property | Field definition array on which this provider was initialized. | |
| AbstractFieldSynonymsBehavior:: | protected | property | Field instance definition on which this provider was initialized. | |
| AbstractFieldSynonymsBehavior:: | protected | function | Retrieve items of the underlying field in this behavior implementation. | |
| AbstractFieldSynonymsBehavior:: | public | function | Collect info on features pipe during invocation of hook_features_export(). Overrides AbstractSynonymsBehavior:: | |
| AbstractFieldSynonymsBehavior:: | protected | function | Filter $items only to contain unique values. | |
| AbstractFieldSynonymsBehavior:: | public | function | Overrides AbstractSynonymsBehavior:: | |
| AbstractSynonymsBehavior:: | protected | property | Behavior implementation on which this class was initialized. | |
| AbstractSynonymsBehavior:: | constant | Constant which denotes placeholder of an entity ID column. | ||
| AbstractSynonymsBehavior:: | constant | Constant which denotes placeholder of a synonym column. | ||
| AbstractSynonymsBehavior:: | protected | function | Process condition in 'synonymsFind' method. | |
| TaxonomySynonymsBehavior:: | public | function | Extract synonyms from an entity within a specific behavior implementation. Overrides SynonymsBehavior:: | |
| TaxonomySynonymsBehavior:: | public | function | Add an entity as a synonym into another entity. Overrides SynonymsBehavior:: | |
| TaxonomySynonymsBehavior:: | public | function | Look up entities by their synonyms within a behavior implementation. Overrides SynonymsBehavior:: | |
| TaxonomyTermReferenceTermMergeSynonymsBehavior:: | public | function | Add an entity as a synonym into another entity. Overrides TermMergeSynonymsBehavior:: | 
