You are here

class CommercePriceSynonymsBehavior in Synonyms 7

Definition of CommercePriceSynonymsBehavior class.

Hierarchy

Expanded class hierarchy of CommercePriceSynonymsBehavior

2 string references to 'CommercePriceSynonymsBehavior'
CommercePriceSynonymsBehaviorWebTestCase::getInfo in synonyms_commerce/synonyms_commerce.test
GetInfo method.
synonyms_commerce_synonyms_provider_field_behavior_implementation_info in synonyms_commerce/synonyms_commerce.module
Implements hook_synonyms_provider_field_behavior_implementation_info().

File

synonyms_commerce/includes/CommercePriceSynonymsBehavior.class.inc, line 11
Enables Commerce Price field type for synonyms integration.

View source
class CommercePriceSynonymsBehavior extends AbstractFieldSynonymsBehavior {
  public function extractSynonyms($entity, $langcode = NULL) {
    $synonyms = array();
    foreach ($this
      ->entityItems($entity, $langcode) as $item) {
      $synonyms[] = commerce_currency_format($item['amount'], $item['currency_code'], $entity);
    }
    return $synonyms;
  }
  public function mergeEntityAsSynonym($trunk_entity, $synonym_entity, $synonym_entity_type) {

    // TODO: remove this thing.
  }
  public function synonymsFind(QueryConditionInterface $condition) {
    if ($this->field['storage']['type'] != 'field_sql_storage') {
      throw new SynonymsBehaviorException(t('Not supported storage engine %type in @method() method.', array(
        '%type' => $this->field['storage']['type'],
        '@method' => __METHOD__,
      )));
    }
    $table = array_keys($this->field['storage']['details']['sql'][FIELD_LOAD_CURRENT]);
    $table = reset($table);
    $columns = $this->field['storage']['details']['sql'][FIELD_LOAD_CURRENT][$table];
    $query = db_select($table, 'field');
    $query
      ->fields('field', array(
      'entity_id',
    ));
    $query
      ->addField('field', $columns['amount'], 'amount');
    $query
      ->addField('field', $columns['currency_code'], 'currency_code');
    $query
      ->condition('field.entity_type', $this->instance['entity_type']);
    $query
      ->condition('field.bundle', $this->instance['bundle']);
    $this
      ->synonymsFindProcessCondition($condition, 'field.' . $columns['amount'], 'field.entity_id');
    $query
      ->condition($condition);
    $result = $query
      ->execute();
    $matches = array();
    foreach ($result as $row) {
      $matches[] = (object) array(
        'entity_id' => $row->entity_id,
        'synonym' => commerce_currency_format($row->amount, $row->currency_code),
      );
    }
    return $matches;
  }

}

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.
CommercePriceSynonymsBehavior::extractSynonyms public function Extract synonyms from an entity within a specific behavior implementation. Overrides SynonymsBehavior::extractSynonyms
CommercePriceSynonymsBehavior::mergeEntityAsSynonym public function Add an entity as a synonym into another entity. Overrides SynonymsBehavior::mergeEntityAsSynonym
CommercePriceSynonymsBehavior::synonymsFind public function Look up entities by their synonyms within a behavior implementation. Overrides SynonymsBehavior::synonymsFind