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: '), + '#description' => t('Specify with what wording the synonyms should be suggested in the autocomplete feature. You may use: '), '#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"