You are here

AbstractPropertySynonymsBehavior.class.inc in Synonyms 7

Abstract class for enabling entity properties to be source of synonyms.

File

synonyms_provider_property/includes/AbstractPropertySynonymsBehavior.class.inc
View source
<?php

/**
 * @file
 * Abstract class for enabling entity properties to be source of synonyms.
 */

/**
 * Definition of AbstractPropertySynonymsBehavior class.
 */
class AbstractPropertySynonymsBehavior extends AbstractSynonymsBehavior implements AutocompleteSynonymsBehavior, SelectSynonymsBehavior {

  /**
   * Name of the property on which this provider was initialized.
   *
   * @var string
   */
  protected $property;

  /**
   * Entity info of the entity type on which this provider was initialized.
   *
   * @var array
   */
  protected $entity_info;
  public function __construct($behavior_implementation) {
    parent::__construct($behavior_implementation);
    $this->property = synonyms_provider_property_name($this->behavior_implementation['provider']);
    $this->entity_info = entity_get_info($this->behavior_implementation['entity_type']);
  }
  public function extractSynonyms($entity, $langcode = NULL) {
    $synonyms = array();
    if (isset($entity->{$this->property}) && $entity->{$this->property}) {
      $synonyms[] = $entity->{$this->property};
    }
    return $synonyms;
  }
  public function mergeEntityAsSynonym($trunk_entity, $synonym_entity, $synonym_entity_type) {

    // TODO: what to do ???
  }
  public function synonymsFind(QueryConditionInterface $condition) {
    $query = db_select($this->entity_info['base table'], 'base');
    $query
      ->addField('base', $this->entity_info['entity keys']['id'], 'entity_id');
    $query
      ->addField('base', $this->property, 'synonym');
    $this
      ->synonymsFindProcessCondition($condition, 'base.' . $this->property, 'base.' . $this->entity_info['entity keys']['id']);
    $query
      ->condition($condition);
    return $query
      ->execute();
  }

}

Classes

Namesort descending Description
AbstractPropertySynonymsBehavior Definition of AbstractPropertySynonymsBehavior class.