diff --git a/sites/all/modules/contrib/admin/uuid/uuid.info b/sites/all/modules/contrib/admin/uuid/uuid.info
index dedeade7..1ea79d31 100644
--- a/sites/all/modules/contrib/admin/uuid/uuid.info
+++ b/sites/all/modules/contrib/admin/uuid/uuid.info
@@ -7,9 +7,9 @@ files[] = uuid.test
dependencies[] = node
dependencies[] = user
-; Information added by Drupal.org packaging script on 2016-08-02
-version = "7.x-1.0-beta2"
+; Information added by Drupal.org packaging script on 2017-04-27
+version = "7.x-1.0"
core = "7.x"
project = "uuid"
-datestamp = "1470153540"
+datestamp = "1493291958"
diff --git a/sites/all/modules/contrib/admin/uuid/uuid_path/uuid_path.info b/sites/all/modules/contrib/admin/uuid/uuid_path/uuid_path.info
index 7b033fd5..74a809c9 100644
--- a/sites/all/modules/contrib/admin/uuid/uuid_path/uuid_path.info
+++ b/sites/all/modules/contrib/admin/uuid/uuid_path/uuid_path.info
@@ -5,9 +5,9 @@ package = UUID
dependencies[] = uuid
-; Information added by Drupal.org packaging script on 2016-08-02
-version = "7.x-1.0-beta2"
+; Information added by Drupal.org packaging script on 2017-04-27
+version = "7.x-1.0"
core = "7.x"
project = "uuid"
-datestamp = "1470153540"
+datestamp = "1493291958"
diff --git a/sites/all/modules/contrib/admin/uuid/uuid_services/uuid_services.info b/sites/all/modules/contrib/admin/uuid/uuid_services/uuid_services.info
index 62af49f1..23a14f8b 100644
--- a/sites/all/modules/contrib/admin/uuid/uuid_services/uuid_services.info
+++ b/sites/all/modules/contrib/admin/uuid/uuid_services/uuid_services.info
@@ -7,9 +7,9 @@ dependencies[] = services
dependencies[] = uuid
dependencies[] = entity
-; Information added by Drupal.org packaging script on 2016-08-02
-version = "7.x-1.0-beta2"
+; Information added by Drupal.org packaging script on 2017-04-27
+version = "7.x-1.0"
core = "7.x"
project = "uuid"
-datestamp = "1470153540"
+datestamp = "1493291958"
diff --git a/sites/all/modules/contrib/admin/uuid/uuid_services_example/uuid_services_example.info b/sites/all/modules/contrib/admin/uuid/uuid_services_example/uuid_services_example.info
index 52b22c11..ef86389b 100644
--- a/sites/all/modules/contrib/admin/uuid/uuid_services_example/uuid_services_example.info
+++ b/sites/all/modules/contrib/admin/uuid/uuid_services_example/uuid_services_example.info
@@ -11,9 +11,9 @@ features[ctools][] = services:services:3
features[features_api][] = api:2
features[services_endpoint][] = uuid_services_example
-; Information added by Drupal.org packaging script on 2016-08-02
-version = "7.x-1.0-beta2"
+; Information added by Drupal.org packaging script on 2017-04-27
+version = "7.x-1.0"
core = "7.x"
project = "uuid"
-datestamp = "1470153540"
+datestamp = "1493291958"
diff --git a/sites/all/modules/contrib/form/webform/includes/webform.submissions.inc b/sites/all/modules/contrib/form/webform/includes/webform.submissions.inc
index 927439d4..84121efc 100644
--- a/sites/all/modules/contrib/form/webform/includes/webform.submissions.inc
+++ b/sites/all/modules/contrib/form/webform/includes/webform.submissions.inc
@@ -611,7 +611,7 @@ function webform_get_submissions($filters = array(), $header = NULL, $pager_coun
// No need to find SIDs if it was given to us.
if (isset($filters['sid'])) {
- $sids = array($filters['sid']);
+ $sids = (array) $filters['sid'];
}
// Build the list of SIDs that need to be retrieved.
else {
@@ -705,7 +705,12 @@ function webform_get_submissions($filters = array(), $header = NULL, $pager_coun
$function($submissions);
}
- return $submissions;
+ // Reorder submissions to reflect table header sorting.
+ $ordered_submissions = array();
+ foreach($sids as $sid) {
+ $ordered_submissions[$sid] = $submissions[$sid];
+ }
+ return $ordered_submissions;
}
/**
diff --git a/sites/all/modules/contrib/form/webform/webform.info b/sites/all/modules/contrib/form/webform/webform.info
index 3dda1e05..02f8ea1d 100644
--- a/sites/all/modules/contrib/form/webform/webform.info
+++ b/sites/all/modules/contrib/form/webform/webform.info
@@ -24,9 +24,9 @@ files[] = tests/permissions.test
files[] = tests/submission.test
files[] = tests/webform.test
-; Information added by Drupal.org packaging script on 2016-10-19
-version = "7.x-3.25"
+; Information added by Drupal.org packaging script on 2017-02-09
+version = "7.x-3.27"
core = "7.x"
project = "webform"
-datestamp = "1476870845"
+datestamp = "1486665496"
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/README.txt b/sites/all/modules/contrib/taxonomy/synonyms/README.txt
index 35e616b3..b1949b7c 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/README.txt
+++ b/sites/all/modules/contrib/taxonomy/synonyms/README.txt
@@ -48,6 +48,7 @@ Module ships with ability to provide synonyms from the following locations:
* "Taxonomy Term Reference" field type
* "Entity Reference" field type
* "Commerce Product Reference" field type
+* "Commerce price" field type
* "Number" field type
* "Float" field type
* "Decimal" field type
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/help/synonyms.html b/sites/all/modules/contrib/taxonomy/synonyms/help/synonyms.html
index 1cc031e0..bff4b467 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/help/synonyms.html
+++ b/sites/all/modules/contrib/taxonomy/synonyms/help/synonyms.html
@@ -41,6 +41,7 @@ As stated above, your synonyms can be stored in about any kind of storage. On th
Decimal
Float
Commerce product reference (you'll have to additionally enable "Synonyms Commerce" submodule for this one)
+ Commerce price (you'll have to additionally enable "Synonyms Commerce" submodule for this one)
Other modules may extend this list by implementing behaviors for other field types. Refer to writing custom field-based behavior implementation for more details.
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/includes/SynonymsBehavior.interface.inc b/sites/all/modules/contrib/taxonomy/synonyms/includes/SynonymsBehavior.interface.inc
index 58f2e4ef..59db6f43 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/includes/SynonymsBehavior.interface.inc
+++ b/sites/all/modules/contrib/taxonomy/synonyms/includes/SynonymsBehavior.interface.inc
@@ -17,11 +17,14 @@ interface SynonymsBehavior {
*
* @param object $entity
* Entity from which to extract synonyms
+ * @param string $langcode
+ * Language code for which to extract synonyms from the entity, if one is
+ * known
*
- * @return array
- * Array of synonyms extracted from $entity
+ * @return array Array of synonyms extracted from $entity
+ * Array of synonyms extracted from $entity
*/
- public function extractSynonyms($entity);
+ public function extractSynonyms($entity, $langcode = NULL);
/**
* Add an entity as a synonym into another entity.
@@ -65,7 +68,11 @@ interface SynonymsBehavior {
* For ease of work with these placeholders, you may extend the
* AbstractSynonymsBehavior class and then just invoke the
* AbstractSynonymsBehavior->synonymsFindProcessCondition() method, so you
- * won't have to worry much about it
+ * won't have to worry much about it. Important note: if you plan on
+ * re-using the same $condition object for multiple invocations of this
+ * method you must pass in here a clone of your condition object, since the
+ * internal implementation of this method will change the condition (will
+ * swap the aforementioned placeholders with actual column names)
*
* @return Traversable
* Traversable result set of found synonyms and entity IDs to which those
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/plugins/behavior/autocomplete.inc b/sites/all/modules/contrib/taxonomy/synonyms/plugins/behavior/autocomplete.inc
index 761376b6..381c2230 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/plugins/behavior/autocomplete.inc
+++ b/sites/all/modules/contrib/taxonomy/synonyms/plugins/behavior/autocomplete.inc
@@ -24,7 +24,7 @@ function synonyms_behavior_autocomplete_settings_form($form, &$form_state, $sett
'#type' => 'textfield',
'#title' => t('Autocomplete wording'),
'#default_value' => isset($settings['wording']) ? $settings['wording'] : '@synonym is a synonym of @entity',
- '#description' => t('Specify with what wording the synonyms should be suggested in the autocomplete feature. You may use: - @synonym to denote value of the synonym
- @entity to denote entity name
- @field_name to denote lowercase label of the field from where the synonym originates
'),
+ '#description' => t('Specify with what wording the synonyms should be suggested in the autocomplete feature. You may use: - @synonym to denote value of the synonym
- @entity to denote entity name
- @field_name to denote lowercase label of the field from where the synonym originates
- @bundle to denote bundle name of the suggested entity
'),
'#required' => TRUE,
);
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/plugins/feeds_tamper/synonyms_entity_find.inc b/sites/all/modules/contrib/taxonomy/synonyms/plugins/feeds_tamper/synonyms_entity_find.inc
new file mode 100644
index 00000000..5c1aec0b
--- /dev/null
+++ b/sites/all/modules/contrib/taxonomy/synonyms/plugins/feeds_tamper/synonyms_entity_find.inc
@@ -0,0 +1,80 @@
+ 'synonyms_entity_find_feeds_tamper_form',
+ 'callback' => 'synonyms_entity_find_feeds_tamper_callback',
+ 'name' => 'Synonyms-friendly entity look up',
+ 'multi' => 'loop',
+ 'category' => 'Other',
+);
+
+/**
+ * Feeds tamper settings form builder.
+ */
+function synonyms_entity_find_feeds_tamper_form($importer, $element_key, $settings, array &$form_state) {
+ $html_id = 'synonysm-entity-find-feeds-tamper-settings';
+ $form = array(
+ '#prefix' => '',
+ '#suffix' => '
',
+ );
+
+ $entity_info = entity_get_info();
+
+ $entity_type_options = array();
+ foreach ($entity_info as $entity_type => $entity_type_info) {
+ $entity_type_options[$entity_type] = $entity_type_info['label'];
+ }
+
+ $default_entity_type = isset($form_state['values']['settings']['entity_type']) ? $form_state['values']['settings']['entity_type'] : (isset($settings['entity_type']) ? $settings['entity_type'] : NULL);
+
+ $form['entity_type'] = array(
+ '#type' => 'select',
+ '#title' => t('Entity type'),
+ '#required' => TRUE,
+ '#options' => $entity_type_options,
+ '#default_value' => $default_entity_type,
+ '#ajax' => array(
+ 'callback' => 'synonyms_entity_find_feeds_tamper_form_ajax',
+ 'wrapper' => $html_id,
+ ),
+ );
+
+ $bundle_options = array();
+ if ($default_entity_type) {
+ foreach ($entity_info[$default_entity_type]['bundles'] as $bundle => $bundle_info) {
+ $bundle_options[$bundle] = $bundle_info['label'];
+ }
+ }
+
+ $form['bundle'] = array(
+ '#type' => 'select',
+ '#title' => t('Bundle'),
+ '#options' => $bundle_options,
+ '#default_value' => isset($settings['bundle']) ? $settings['bundle'] : NULL,
+ '#access' => isset($entity_type['entity keys']['bundle']) && $entity_type['entity keys']['bundle'],
+ );
+
+ return $form;
+}
+
+/**
+ * Feeds tamper callback to execute entity look up by its synonyms.
+ */
+function synonyms_entity_find_feeds_tamper_callback($result, $item_key, $element_key, &$field, array $settings) {
+ $found = synonyms_get_entity_by_synonym($settings['entity_type'], $field, $settings['bundle']);
+ if ($found) {
+ $field = $found;
+ }
+}
+
+/**
+ * Ajax callback for form changes.
+ */
+function synonyms_entity_find_feeds_tamper_form_ajax(array $form, array &$form_state) {
+ return isset($form['plugin']['settings']) ? $form['plugin']['settings'] : $form['settings'];
+}
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms.api.php b/sites/all/modules/contrib/taxonomy/synonyms/synonyms.api.php
index dc8b6bcd..1667ba55 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms.api.php
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms.api.php
@@ -75,11 +75,14 @@ class MySynonymsSynonymsBehavior extends AbstractSynonymsBehavior implements Aut
*
* @param object $entity
* Entity from which to extract synonyms
+ * @param string $langcode
+ * Language code for which to extract synonyms from the entity, if one is
+ * known
*
* @return array
* Array of synonyms extracted from $entity
*/
- public function extractSynonyms($entity) {
+ public function extractSynonyms($entity, $langcode = NULL) {
$synonyms = array();
// Do something with $entity in order to extract synonyms from it. Add all
@@ -129,12 +132,16 @@ class MySynonymsSynonymsBehavior extends AbstractSynonymsBehavior implements Aut
* synonyms column which you should replace with the actual column name
* where the synonyms data for your provider is stored in plain text.
* - AbstractSynonymsBehavior::COLUMN_ENTITY_ID_PLACEHOLDER: to denote
- * column that holds entity ID. You are supposed to replace this placeholder
- * with actual column name that holds entity ID in your case.
+ * column that holds entity ID. You are supposed to replace this
+ * placeholder with actual column name that holds entity ID in your case.
* For ease of work with these placeholders, you may extend the
* AbstractSynonymsBehavior class and then just invoke the
* AbstractSynonymsBehavior->synonymsFindProcessCondition() method, so you
- * won't have to worry much about it
+ * won't have to worry much about it. Important note: if you plan on
+ * re-using the same $condition object for multiple invocations of this
+ * method you must pass in here a clone of your condition object, since the
+ * internal implementation of this method will change the condition (will
+ * swap the aforementioned placeholders with actual column names)
*
* @return Traversable
* Traversable result set of found synonyms and entity IDs to which those
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms.info b/sites/all/modules/contrib/taxonomy/synonyms/synonyms.info
index 14cacff2..73940456 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms.info
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms.info
@@ -21,9 +21,9 @@ files[] = views/synonyms_views_handler_filter_term_tid.inc
files[] = views/synonyms_views_handler_field_synonyms.inc
files[] = views/synonyms_views_handler_filter_entityreference_synonyms.inc
-; Information added by Drupal.org packaging script on 2016-05-07
-version = "7.x-1.5"
+; Information added by Drupal.org packaging script on 2017-06-30
+version = "7.x-1.6"
core = "7.x"
project = "synonyms"
-datestamp = "1462586641"
+datestamp = "1498833845"
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms.install b/sites/all/modules/contrib/taxonomy/synonyms/synonyms.install
index e43c62ac..d0e1fb28 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms.install
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms.install
@@ -17,13 +17,13 @@ function synonyms_schema() {
'entity_type' => array(
'description' => 'Entity type whose behavior implementation is stored in this row.',
'type' => 'varchar',
- 'length' => 255,
+ 'length' => 128,
'not null' => TRUE,
),
'bundle' => array(
'description' => 'Bundle name whose behavior implementation is stored in this row.',
'type' => 'varchar',
- 'length' => 255,
+ 'length' => 128,
'not null' => TRUE,
),
'provider' => array(
@@ -311,3 +311,63 @@ function synonyms_update_7103() {
}
}
}
+
+/**
+ * Truncating 'entity_type' and 'bundle' columns to 128 length.
+ */
+function synonyms_update_7104() {
+ $table = 'synonyms_settings';
+
+ $indexes = array(
+ 'unique keys' => array(
+ // We build 2 different indexes on the same column set because there are
+ // 2 different functions that may query this table and the columns they
+ // filter on may vary.
+ 'behavior_implementation' => array('behavior', 'entity_type', 'bundle', 'provider'),
+ 'all_enabled' => array('entity_type', 'bundle', 'provider', 'behavior'),
+ ),
+ );
+
+ $fields = array(
+ 'entity_type' => array(
+ 'description' => 'Entity type whose behavior implementation is stored in this row.',
+ 'type' => 'varchar',
+ 'length' => 128,
+ 'not null' => TRUE,
+ ),
+ 'bundle' => array(
+ 'description' => 'Bundle name whose behavior implementation is stored in this row.',
+ 'type' => 'varchar',
+ 'length' => 128,
+ 'not null' => TRUE,
+ ),
+ );
+
+ foreach ($fields as $field => $schema) {
+ foreach ($indexes['unique keys'] as $index_name => $index_specification) {
+ db_drop_unique_key($table, $index_name);
+ }
+
+ db_change_field($table, $field, $field, $schema, $indexes);
+ }
+}
+
+/**
+ * Making actual module tables follow the declared schema.
+ */
+function synonyms_update_7105() {
+ db_drop_unique_key('synonyms_settings', 'behavior_implementation');
+ db_drop_unique_key('synonyms_settings', 'all_enabled');
+
+ db_change_field('synonyms_settings', 'provider', 'provider', array(
+ 'description' => 'Provider name whose behavior implementation is stored in this row.',
+ 'type' => 'varchar',
+ 'length' => 255,
+ 'not null' => TRUE,
+ ), array(
+ 'unique keys' => array(
+ 'behavior_implementation' => array('behavior', 'entity_type', 'bundle', 'provider'),
+ 'all_enabled' => array('entity_type', 'bundle', 'provider', 'behavior'),
+ ),
+ ));
+}
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms.module b/sites/all/modules/contrib/taxonomy/synonyms/synonyms.module
index b322d608..b8d871f8 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms.module
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms.module
@@ -105,6 +105,13 @@ function synonyms_ctools_plugin_directory($owner, $plugin_type) {
return 'plugins/' . $plugin_type;
}
break;
+
+ case 'feeds_tamper':
+ switch ($plugin_type) {
+ case 'plugins':
+ return 'plugins/feeds_tamper';
+ }
+ break;
}
}
@@ -137,6 +144,7 @@ function synonyms_entity_property_info() {
'computed' => TRUE,
'sanitized' => TRUE,
'raw getter callback' => 'synonyms_get_raw',
+ 'translatable' => TRUE,
);
}
}
@@ -477,12 +485,16 @@ function synonyms_autocomplete_entity_validate($element, &$form_state) {
$field = field_info_field($element['#field_name']);
$instance = field_info_instance($element['#entity_type'], $field['field_name'], $element['#bundle']);
$handler = entityreference_get_selection_handler($field, $instance);
- $matches = $handler->getReferencableEntities($input, 'IN');
- foreach ($matches as $bundle => $entity_ids) {
- foreach ($entity_ids as $entity_id => $label) {
- $value[] = $entity_id;
- unset($input[drupal_strtolower($label)]);
+ foreach ($input as $k => $v) {
+ $matches = $handler->getReferencableEntities($v, '=');
+
+ foreach ($matches as $bundle => $entity_ids) {
+ $entities = entity_load($field['settings']['target_type'], array_keys($entity_ids));
+ foreach ($entity_ids as $entity_id => $label) {
+ $value[] = $entity_id;
+ unset($input[drupal_strtolower(entity_label($field['settings']['target_type'], $entities[$entity_id]))]);
+ }
}
}
@@ -491,7 +503,7 @@ function synonyms_autocomplete_entity_validate($element, &$form_state) {
foreach ($behavior_implementations as $implementation) {
$condition = db_and();
$condition->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, $input, 'IN');
- foreach ($implementation['object']->synonymsFind($condition) as $synonym) {
+ foreach ($implementation['object']->synonymsFind(clone $condition) as $synonym) {
$value[] = $synonym->entity_id;
unset($input[drupal_strtolower($synonym->synonym)]);
if (empty($input)) {
@@ -687,11 +699,16 @@ function synonyms_get_raw($entity, array $options, $name, $entity_type, &$contex
$bundle = entity_extract_ids($entity_type, $entity);
$bundle = $bundle[2];
+ $langcode = NULL;
+ if (isset($options['language']) && $options['language']) {
+ $langcode = $options['language']->language;
+ }
+
$behavior_implementations = synonyms_behavior_get_all_enabled($entity_type, $bundle);
$providers = array();
foreach ($behavior_implementations as $implementation) {
if (!in_array($implementation['provider'], $providers)) {
- $synonyms = array_merge($synonyms, $implementation['object']->extractSynonyms($entity));
+ $synonyms = array_merge($synonyms, $implementation['object']->extractSynonyms($entity, $langcode));
$providers[] = $implementation['provider'];
}
}
@@ -742,12 +759,16 @@ function synonyms_get_term_synonyms($term) {
*
* @param QueryConditionInterface $condition
* Object of QueryConditionInterface that specifies conditions by which you
- * want to find synonyms. When building this condition object, use
- * AbstractSynonymsBehavior::COLUMN_PLACEHOLDER as a placeholder for real
- * column name that contains synonym as text. For example, if you were to find
- * all entities with synonyms that begin with "synonym-come-here" substring,
- * case insensitive and replacing all spaces in original synonym string by a
- * dash sign, then you would have to create the following condition object:
+ * want to find synonyms. When building this condition object, you can use
+ * the following column placeholders:
+ * - AbstractSynonymsBehavior::COLUMN_PLACEHOLDER: as a placeholder for real
+ * column name that contains synonym as text
+ * - AbstractSynonymsBehavior::COLUMN_ENTITY_ID_PLACEHOLDER: as a placeholder
+ * for real column name that holds entity ID
+ * For example, if you were to find all entities with synonyms that begin with
+ * "synonym-come-here" substring, case insensitive and replacing all spaces
+ * in original synonym string by a dash sign, then you would have to create
+ * the following condition object:
* db_and()
* ->where("LOWER(REPLACE(" . AbstractSynonymsBehavior::COLUMN_PLACEHOLDER . ", ' ', '-')) LIKE :synonym", array(
* ':synonym' => '%' . db_like($some-var) . '%'
@@ -772,7 +793,7 @@ function synonyms_synonyms_find(QueryConditionInterface $condition, $entity_type
$behavior_implementations = synonyms_behavior_get_all_enabled($entity_type, $bundle);
foreach ($behavior_implementations as $behavior_implementation) {
- foreach ($behavior_implementation['object']->synonymsFind($condition) as $row) {
+ foreach ($behavior_implementation['object']->synonymsFind(clone $condition) as $row) {
$rows[] = $row;
}
}
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms.pages.inc b/sites/all/modules/contrib/taxonomy/synonyms/synonyms.pages.inc
index bf72fd33..79944660 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms.pages.inc
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms.pages.inc
@@ -165,7 +165,9 @@ function synonyms_autocomplete_taxonomy_term($field_name, $entity_type, $bundle,
$synonym_terms = taxonomy_term_load_multiple($synonym_terms);
foreach ($tags_return as &$v) {
if (isset($v['synonym'])) {
+ $entity_ids = entity_extract_ids('taxonomy_term', $synonym_terms[$v['tid']]);
$v['name'] = $synonym_terms[$v['tid']]->name;
+ $v['bundle'] = $entity_ids[2];
}
}
}
@@ -242,8 +244,10 @@ function synonyms_autocomplete_entity($field_name, $entity_type, $bundle, $tags_
$tags_typed_entity_ids = array();
if (!empty($tags_typed)) {
- foreach ($handler->getReferencableEntities($tags_typed, 'IN') as $target_entity_ids) {
- $tags_typed_entity_ids = array_merge($tags_typed_entity_ids, array_keys($target_entity_ids));
+ foreach ($tags_typed as $v) {
+ foreach ($handler->getReferencableEntities($v, '=') as $target_entity_ids) {
+ $tags_typed_entity_ids = array_merge($tags_typed_entity_ids, array_keys($target_entity_ids));
+ }
}
}
@@ -251,9 +255,18 @@ function synonyms_autocomplete_entity($field_name, $entity_type, $bundle, $tags_
if ($tag_last) {
foreach ($handler->getReferencableEntities($tag_last) as $target_entity_ids) {
foreach (array_diff_key($target_entity_ids, drupal_map_assoc($tags_typed_entity_ids)) as $target_id => $label) {
+ // We do not use the label such as given us by
+ // $handler->getReferencableEntities() because some handlers may include
+ // more than just plain entity label. However, our validate handler
+ // expects the exact labels in the text field. So we assure we put a
+ // label there.
+ // These entities have already been loaded by $handler, so we shouldn't
+ // care that much performance-wise about loading them in batch.
+ $entity = entity_load($field['settings']['target_type'], array($target_id));
+ $entity = reset($entity);
$matches[] = array(
'target_id' => $target_id,
- 'name' => $label,
+ 'name' => entity_label($field['settings']['target_type'], $entity),
);
if (count($matches) == $max_suggestions) {
break (2);
@@ -306,7 +319,9 @@ function synonyms_autocomplete_entity($field_name, $entity_type, $bundle, $tags_
foreach ($matches as $k => $match) {
if (!isset($match['name']) && isset($match['synonym'])) {
if (entity_access('view', $field['settings']['target_type'], $synonym_entities[$match['target_id']])) {
+ $entity_ids = entity_extract_ids($field['settings']['target_type'], $synonym_entities[$match['target_id']]);
$matches[$k]['name'] = entity_label($field['settings']['target_type'], $synonym_entities[$match['target_id']]);
+ $matches[$k]['bundle'] = $entity_ids[2];
}
else {
unset($matches[$k]);
@@ -332,6 +347,7 @@ function synonyms_autocomplete_entity($field_name, $entity_type, $bundle, $tags_
* - behavior_implementation: (array) If this entry is matched through a
* synonym, put here the behavior implementation array that provided this
* match
+ * - bundle: (string) Bundle of the entity that is suggested in this entry
* @param string $prefix
* Any prefix to be appended to 'name' property of $matches array when
* inserting into the autocomplete textfield. Normally it is the already
@@ -344,6 +360,8 @@ function synonyms_autocomplete_entity($field_name, $entity_type, $bundle, $tags_
function synonyms_autocomplete_format($matches, $prefix) {
$output = array();
+ $entity_info = array();
+
foreach ($matches as $match) {
$n = synonyms_autocomplete_escape($match['name']);
while (isset($output[$prefix . $n])) {
@@ -351,10 +369,15 @@ function synonyms_autocomplete_format($matches, $prefix) {
}
$wording = check_plain($match['name']);
if (isset($match['synonym'])) {
- $wording = format_string(filter_xss($match['behavior_implementation']['settings']['wording']), array(
+ if (!isset($entity_info[$match['behavior_implementation']['entity_type']])) {
+ $entity_info[$match['behavior_implementation']['entity_type']] = entity_get_info($match['behavior_implementation']['entity_type']);
+ }
+
+ $wording = format_string(filter_xss_admin($match['behavior_implementation']['settings']['wording']), array(
'@entity' => $match['name'],
'@synonym' => $match['synonym'],
'@field_name' => drupal_strtolower($match['behavior_implementation']['label']),
+ '@bundle' => $entity_info[$match['behavior_implementation']['entity_type']]['bundles'][$match['bundle']]['label'],
));
}
$output[$prefix . $n] = $wording;
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms.test b/sites/all/modules/contrib/taxonomy/synonyms/synonyms.test
index bb53e7b2..bf23cb2b 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms.test
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms.test
@@ -323,6 +323,23 @@ class SynonymsSynonymsWebTestCase extends SynonymsWebTestCase {
$entity_id = synonyms_get_entity_by_synonym('taxonomy_term', $term_parent->{$this->fields['disabled']['field']['field_name']}[LANGUAGE_NONE][0]['value']);
$this->assertEqual($entity_id, 0, 'synonyms_get_entity_by_synonym() returns 0 if a non-synonym field value is supplied.');
+
+ // Testing the function synonyms_synonyms_find().
+ // Adding one more behavior implementation and making sure 2 of them work
+ // as expected.
+ $behavior_implementation = array(
+ 'entity_type' => $this->behavior_implementation['entity_type'],
+ 'bundle' => $this->behavior_implementation['bundle'],
+ 'provider' => synonyms_provider_field_provider_name($this->fields['disabled']['field']),
+ 'behavior' => $this->behavior_implementation['behavior'],
+ 'settings' => $this->behavior_implementation['settings'],
+ );
+ synonyms_behavior_implementation_save($behavior_implementation);
+ $condition = db_and();
+ $condition->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, $parent_synonym);
+ $found_synonyms = synonyms_synonyms_find($condition, $this->behavior_implementation['entity_type'], $this->behavior_implementation['bundle']);
+ $this->assertEqual(count($found_synonyms), 1, 'Function synonyms_synonyms_find() returns only 1 found synonym for the case when 2 synonym behaviors are enabled.');
+ $this->assertTrue($found_synonyms[0]->synonym == $parent_synonym && $found_synonyms[0]->entity_id = $term_parent->tid, 'Function synonyms_synonyms_find() returns corret synonym information when 2 synonym behaviors are enabled.');
}
}
@@ -374,7 +391,7 @@ abstract class AbstractAutocompleteSynonymsWebTestCase extends SynonymsWebTestCa
public function setUp($modules = array()) {
$this->behavior_implementation['behavior'] = 'autocomplete';
$this->behavior_implementation['settings'] = array(
- 'wording' => '@synonym @field_name @entity',
+ 'wording' => '@synonym @field_name @entity @bundle',
);
$modules[] = 'synonyms_provider_property';
parent::setUp($modules);
@@ -634,10 +651,14 @@ abstract class AbstractAutocompleteSynonymsWebTestCase extends SynonymsWebTestCa
}
$provider = synonyms_behavior_implementation_info($behavior_implementation['entity_type'], $behavior_implementation['bundle'], $behavior_implementation['behavior']);
$provider = $provider[$behavior_implementation['provider']];
+ $entity_ids = entity_extract_ids($behavior_implementation['entity_type'], $entity);
+ $entity_info = entity_get_info($behavior_implementation['entity_type']);
+
return format_string($behavior_implementation['settings']['wording'], array(
'@synonym' => $synonym,
'@entity' => entity_label($behavior_implementation['entity_type'], $entity),
'@field_name' => drupal_strtolower($provider['label']),
+ '@bundle' => $entity_info['bundles'][$entity_ids[2]]['label'],
));
}
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/includes/CommercePriceSynonymsBehavior.class.inc b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/includes/CommercePriceSynonymsBehavior.class.inc
new file mode 100644
index 00000000..8a76f5d8
--- /dev/null
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/includes/CommercePriceSynonymsBehavior.class.inc
@@ -0,0 +1,61 @@
+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;
+ }
+}
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/includes/CommerceProductReferenceSynonymsBehavior.class.inc b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/includes/CommerceProductReferenceSynonymsBehavior.class.inc
index db5e47b2..93939d74 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/includes/CommerceProductReferenceSynonymsBehavior.class.inc
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/includes/CommerceProductReferenceSynonymsBehavior.class.inc
@@ -10,11 +10,11 @@
*/
class CommerceProductReferenceSynonymsBehavior extends AbstractFieldSynonymsBehavior {
- public function extractSynonyms($entity) {
+ public function extractSynonyms($entity, $langcode = NULL) {
$synonyms = array();
$product_ids = array();
- foreach ($this->entityItems($entity) as $item) {
+ foreach ($this->entityItems($entity, $langcode) as $item) {
$product_ids[] = $item['product_id'];
}
$entities = commerce_product_load_multiple($product_ids);
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.info b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.info
index 30f7970f..ba305c2b 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.info
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.info
@@ -4,16 +4,18 @@ package = Synonyms
core = 7.x
dependencies[] = synonyms_provider_field
dependencies[] = commerce_product_reference
+dependencies[] = commerce_price
test_dependencies[] = commerce:commerce_product_ui
files[] = synonyms_commerce.test
files[] = includes/CommerceProductReferenceSynonymsBehavior.class.inc
+files[] = includes/CommercePriceSynonymsBehavior.class.inc
-; Information added by Drupal.org packaging script on 2016-05-07
-version = "7.x-1.5"
+; Information added by Drupal.org packaging script on 2017-06-30
+version = "7.x-1.6"
core = "7.x"
project = "synonyms"
-datestamp = "1462586641"
+datestamp = "1498833845"
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.module b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.module
index c5c7307c..842a9e21 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.module
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.module
@@ -154,6 +154,7 @@ function synonyms_commerce_synonyms_provider_field_behavior_implementation_info(
case 'autocomplete':
return array(
'commerce_product_reference' => 'CommerceProductReferenceSynonymsBehavior',
+ 'commerce_price' => 'CommercePriceSynonymsBehavior',
);
break;
}
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.pages.inc b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.pages.inc
index 41edc42a..48b2e89c 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.pages.inc
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.pages.inc
@@ -117,7 +117,9 @@ function synonyms_commerce_autocomplete($field_name, $entity_type, $bundle) {
$synonym_entities = commerce_product_load_multiple($synonym_entities);
foreach ($matches as $k => $match) {
if (!isset($match['name']) && isset($match['synonym'])) {
+ $entity_ids = entity_extract_ids('commerce_product', $synonym_entities[$match['target_id']]);
$matches[$k]['name'] = entity_label('commerce_product', $synonym_entities[$match['target_id']]);
+ $matches[$k]['bundle'] = $entity_ids[2];
}
}
$matches = array_values($matches);
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.test b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.test
index c577fe23..58397547 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.test
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_commerce/synonyms_commerce.test
@@ -847,3 +847,248 @@ class CommerceProductReferenceSynonymsBehaviorWebTestCase extends AbstractSynony
return $entity;
}
}
+
+/**
+ * Test CommercePriceSynonymsBehavior class.
+ */
+class CommercePriceSynonymsBehaviorWebTestCase extends AbstractSynonymsProviderFieldWebTestCase {
+
+ /**
+ * GetInfo method.
+ */
+ public static function getInfo() {
+ return array(
+ 'name' => 'CommercePriceSynonymsBehavior',
+ 'description' => 'Ensure that the synonyms module extracts synonyms from commerce price fields correctly.',
+ 'group' => 'Synonyms',
+ );
+ }
+
+ /**
+ * SetUp method.
+ */
+ public function setUp($modules = array()) {
+ $modules[] = 'commerce_price';
+ $modules[] = 'commerce_product_reference';
+ $modules[] = 'commerce_product_ui';
+ $modules[] = 'synonyms_commerce';
+
+ $this->fields['enabled']['field'] = array(
+ 'field_name' => 'synonyms_commerce_price',
+ 'cardinality' => FIELD_CARDINALITY_UNLIMITED,
+ 'type' => 'commerce_price',
+ );
+
+ parent::setUp($modules);
+ }
+
+ /**
+ * Test synonyms extraction for 'commerce_price' field type.
+ */
+ public function testCommercePrice() {
+ // Testing synonymsExtract().
+ $this->assertSynonymsExtract(array(), array(), 'on empty field.');
+
+ $this->assertSynonymsExtract(array(
+ LANGUAGE_NONE => array(
+ 0 => array(
+ 'amount' => 1000,
+ 'currency_code' => 'USD',
+ ),
+ ),
+ ), array(commerce_currency_format(1000, 'USD')), 'on a field that holds one value.');
+
+ // Testing synonymFind() method.
+ $this->assertSynonymsFind(array(), db_and()->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, $this->randomName()), 'on empty field');
+
+ $meta_data = array();
+ $meta_data[] = array(
+ 'items' => array(),
+ 'found_synonyms' => array(),
+ );
+ $this->assertSynonymsFind($meta_data, db_and()->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, $this->randomName()), 'on a field without values');
+
+ $meta_data = array();
+ $meta_data[] = array(
+ 'items' => array(
+ LANGUAGE_NONE => array(
+ array(
+ 'amount' => 1000,
+ 'currency_code' => 'USD',
+ ),
+ ),
+ ),
+ 'found_synonyms' => array(),
+ );
+ $this->assertSynonymsFind($meta_data, db_and()->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, $this->randomName()), 'on a field with a value but searching for another string');
+
+ $meta_data = array();
+ $meta_data[] = array(
+ 'items' => array(
+ LANGUAGE_NONE => array(
+ array(
+ 'amount' => 1000,
+ 'currency_code' => 'USD',
+ ),
+ ),
+ ),
+ 'found_synonyms' => array(commerce_currency_format(1000, 'USD')),
+ );
+ $this->assertSynonymsFind($meta_data, db_and()->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, 1000), 'on a field with a single value searching for that string');
+
+ $meta_data = array();
+ $meta_data[] = array(
+ 'items' => array(
+ LANGUAGE_NONE => array(
+ array(
+ 'amount' => 1000,
+ 'currency_code' => 'USD',
+ ),
+ array(
+ 'amount' => 2000,
+ 'currency_code' => 'USD',
+ ),
+ ),
+ ),
+ 'found_synonyms' => array(commerce_currency_format(1000, 'USD')),
+ );
+ $this->assertSynonymsFind($meta_data, db_and()->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, 1000), 'on a field with 2 values searching for one of those 2 values');
+
+ $meta_data = array();
+ $meta_data[] = array(
+ 'items' => array(
+ LANGUAGE_NONE => array(
+ array(
+ 'amount' => 1000,
+ 'currency_code' => 'USD',
+ ),
+ array(
+ 'amount' => 2000,
+ 'currency_code' => 'USD',
+ ),
+ ),
+ ),
+ 'found_synonyms' => array(commerce_currency_format(1000, 'USD')),
+ );
+ $meta_data[] = array(
+ 'items' => array(
+ LANGUAGE_NONE => array(
+ array(
+ 'amount' => 100,
+ 'currency_code' => 'USD',
+ ),
+ array(
+ 'amount' => 200,
+ 'currency_code' => 'USD',
+ ),
+ ),
+ ),
+ 'found_synonyms' => array(),
+ );
+ $this->assertSynonymsFind($meta_data, db_and()->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, 1000), 'on 2 fields with 2 values each searching for one of those values');
+
+ $meta_data = array();
+ $meta_data[] = array(
+ 'items' => array(
+ LANGUAGE_NONE => array(
+ array(
+ 'amount' => 1000,
+ 'currency_code' => 'USD',
+ ),
+ ),
+ ),
+ 'found_synonyms' => array(commerce_currency_format(1000, 'USD')),
+ );
+ $this->assertSynonymsFind($meta_data, db_and()->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, '%' . db_like(10) . '%', 'LIKE'), 'on a field with a value searching for a string LIKE the %value%');
+
+ $meta_data = array();
+ $meta_data[] = array(
+ 'items' => array(
+ LANGUAGE_NONE => array(
+ array(
+ 'amount' => 1000,
+ 'currency_code' => 'USD',
+ ),
+ array(
+ 'amount' => 100,
+ 'currency_code' => 'USD',
+ ),
+ ),
+ ),
+ 'found_synonyms' => array(
+ commerce_currency_format(1000, 'USD'),
+ commerce_currency_format(100, 'USD'),
+ ),
+ );
+ $this->assertSynonymsFind($meta_data, db_and()->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, db_like(100) . '%', 'LIKE'), 'on a field with 2 similar values searching a string like %both values%');
+
+ $meta_data = array();
+ $meta_data[] = array(
+ 'items' => array(
+ LANGUAGE_NONE => array(
+ array(
+ 'amount' => 1000,
+ 'currency_code' => 'USD',
+ ),
+ array(
+ 'amount' => 2000,
+ 'currency_code' => 'USD',
+ ),
+ ),
+ ),
+ 'found_synonyms' => array(
+ commerce_currency_format(1000, 'USD'),
+ commerce_currency_format(2000, 'USD'),
+ ),
+ );
+ $condition = db_or()
+ ->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, 1000)
+ ->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, 2000);
+ $this->assertSynonymsFind($meta_data, $condition, 'on a field with 2 values searching for value1 or value2');
+
+ $meta_data = array();
+ $meta_data[] = array(
+ 'items' => array(
+ LANGUAGE_NONE => array(
+ array(
+ 'amount' => 1000,
+ 'currency_code' => 'USD',
+ ),
+ array(
+ 'amount' => 2000,
+ 'currency_code' => 'USD',
+ ),
+ ),
+ ),
+ 'found_synonyms' => array(commerce_currency_format(1000, 'USD')),
+ );
+ $condition = db_and()
+ ->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, 1000)
+ ->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, '%' . db_like(10) . '%', 'LIKE');
+ $this->assertSynonymsFind($meta_data, $condition, 'on a field with 2 values searching for value1 and LIKE value1%');
+
+ $meta_data = array();
+ $meta_data[] = array(
+ 'items' => array(
+ LANGUAGE_NONE => array(
+ array(
+ 'amount' => 1000,
+ 'currency_code' => 'USD',
+ ),
+ array(
+ 'amount' => 2000,
+ 'currency_code' => 'USD',
+ ),
+ ),
+ ),
+ 'found_synonyms' => array(
+ commerce_currency_format(1000, 'USD'),
+ commerce_currency_format(2000, 'USD'),
+ ),
+ );
+ $condition = db_or()
+ ->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, 1000)
+ ->condition(db_and()->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, 2000)->condition(AbstractSynonymsBehavior::COLUMN_SYNONYM_PLACEHOLDER, '%' . db_like(20) . '%', 'LIKE'));
+ $this->assertSynonymsFind($meta_data, $condition, 'on a field with 2 values searching for (value1 or (value2 AND value2%))');
+ }
+}
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/AbstractFieldSynonymsBehavior.class.inc b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/AbstractFieldSynonymsBehavior.class.inc
index 65688aa3..82888b67 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/AbstractFieldSynonymsBehavior.class.inc
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/AbstractFieldSynonymsBehavior.class.inc
@@ -45,13 +45,16 @@ abstract class AbstractFieldSynonymsBehavior extends AbstractSynonymsBehavior {
*
* @param object $entity
* Entity whose items should be retrieved
+ * @param string $langcode
+ * Language code for which to retrieve items from the entity, if one is
+ * known
*
* @return array
* Array of items that provided entity has in the field on which behavior
* implementation is set up
*/
- protected function entityItems($entity) {
- $items = field_get_items($this->instance['entity_type'], $entity, $this->field['field_name']);
+ protected function entityItems($entity, $langcode = NULL) {
+ $items = field_get_items($this->instance['entity_type'], $entity, $this->field['field_name'], $langcode);
return is_array($items) ? $items : array();
}
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/EntityReferenceSynonymsBehavior.class.inc b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/EntityReferenceSynonymsBehavior.class.inc
index 299383b0..4c95bd92 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/EntityReferenceSynonymsBehavior.class.inc
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/EntityReferenceSynonymsBehavior.class.inc
@@ -10,11 +10,11 @@
*/
class EntityReferenceSynonymsBehavior extends AbstractFieldSynonymsBehavior implements AutocompleteSynonymsBehavior, SelectSynonymsBehavior {
- public function extractSynonyms($entity) {
+ public function extractSynonyms($entity, $langcode = NULL) {
$synonyms = array();
$target_tids = array();
- foreach ($this->entityItems($entity) as $item) {
+ foreach ($this->entityItems($entity, $langcode) as $item) {
$target_tids[] = $item['target_id'];
}
$entities = entity_load($this->field['settings']['target_type'], $target_tids);
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/TaxonomySynonymsBehavior.class.inc b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/TaxonomySynonymsBehavior.class.inc
index 8a3c5380..eb20bdb0 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/TaxonomySynonymsBehavior.class.inc
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/TaxonomySynonymsBehavior.class.inc
@@ -10,11 +10,11 @@
*/
class TaxonomySynonymsBehavior extends AbstractFieldSynonymsBehavior implements AutocompleteSynonymsBehavior, SelectSynonymsBehavior {
- public function extractSynonyms($entity) {
+ public function extractSynonyms($entity, $langcode = NULL) {
$synonyms = array();
$terms = array();
- foreach ($this->entityItems($entity) as $item) {
+ foreach ($this->entityItems($entity, $langcode) as $item) {
$terms[] = $item['tid'];
}
$terms = taxonomy_term_load_multiple($terms);
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/TextSynonymsBehavior.class.inc b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/TextSynonymsBehavior.class.inc
index 0c34546d..6f27dce1 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/TextSynonymsBehavior.class.inc
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/includes/TextSynonymsBehavior.class.inc
@@ -10,10 +10,10 @@
*/
class TextSynonymsBehavior extends AbstractFieldSynonymsBehavior implements AutocompleteSynonymsBehavior, SelectSynonymsBehavior {
- public function extractSynonyms($entity) {
+ public function extractSynonyms($entity, $langcode = NULL) {
$synonyms = array();
- foreach ($this->entityItems($entity) as $item) {
+ foreach ($this->entityItems($entity, $langcode) as $item) {
$synonyms[] = $item['value'];
}
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/synonyms_provider_field.info b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/synonyms_provider_field.info
index 72767c8a..1f24259d 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/synonyms_provider_field.info
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_field/synonyms_provider_field.info
@@ -12,9 +12,9 @@ files[] = includes/TextSynonymsBehavior.class.inc
files[] = synonyms_provider_field.test
-; Information added by Drupal.org packaging script on 2016-05-07
-version = "7.x-1.5"
+; Information added by Drupal.org packaging script on 2017-06-30
+version = "7.x-1.6"
core = "7.x"
project = "synonyms"
-datestamp = "1462586641"
+datestamp = "1498833845"
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_property/includes/AbstractPropertySynonymsBehavior.class.inc b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_property/includes/AbstractPropertySynonymsBehavior.class.inc
index 40fbb647..7398791f 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_property/includes/AbstractPropertySynonymsBehavior.class.inc
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_property/includes/AbstractPropertySynonymsBehavior.class.inc
@@ -31,7 +31,7 @@ class AbstractPropertySynonymsBehavior extends AbstractSynonymsBehavior implemen
$this->entity_info = entity_get_info($this->behavior_implementation['entity_type']);
}
- public function extractSynonyms($entity) {
+ public function extractSynonyms($entity, $langcode = NULL) {
$synonyms = array();
if (isset($entity->{$this->property}) && $entity->{$this->property}) {
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_property/synonyms_provider_property.info b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_property/synonyms_provider_property.info
index baeaa9d4..2d222bcd 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_property/synonyms_provider_property.info
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_provider_property/synonyms_provider_property.info
@@ -10,9 +10,9 @@ files[] = includes/SearchPropertySynonymsBehavior.class.inc
files[] = synonyms_provider_property.test
-; Information added by Drupal.org packaging script on 2016-05-07
-version = "7.x-1.5"
+; Information added by Drupal.org packaging script on 2017-06-30
+version = "7.x-1.6"
core = "7.x"
project = "synonyms"
-datestamp = "1462586641"
+datestamp = "1498833845"
diff --git a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_search/synonyms_search.info b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_search/synonyms_search.info
index b9777533..a48db4d1 100644
--- a/sites/all/modules/contrib/taxonomy/synonyms/synonyms_search/synonyms_search.info
+++ b/sites/all/modules/contrib/taxonomy/synonyms/synonyms_search/synonyms_search.info
@@ -17,9 +17,9 @@ files[] = includes/SearchTaxonomySynonymsBehavior.class.inc
files[] = includes/SearchEntityReferenceSynonymsBehavior.class.inc
files[] = includes/SearchCommerceProductReferenceSynonymsBehavior.class.inc
-; Information added by Drupal.org packaging script on 2016-05-07
-version = "7.x-1.5"
+; Information added by Drupal.org packaging script on 2017-06-30
+version = "7.x-1.6"
core = "7.x"
project = "synonyms"
-datestamp = "1462586641"
+datestamp = "1498833845"