8584957e3a8557256e4a8d2f7fe3a4774210f547 i18nviews.info | 1 + includes/i18nviews.views.inc | 15 +++++++++++++ includes/i18nviews_handler_filter_field_list.inc | 23 ++++++++++++++++++++ 3 files changed, 39 insertions(+), 0 deletions(-) diff --git a/i18nviews.info b/i18nviews.info index 7379b15..df07724 100644 --- a/i18nviews.info +++ b/i18nviews.info @@ -22,6 +22,7 @@ files[] = includes/i18nviews_handler_filter_taxonomy_index_tid.inc files[] = includes/i18nviews_plugin_argument_validate_i18n_taxonomy_term.inc files[] = includes/i18nviews_plugin_localization_i18nstrings.inc files[] = includes/i18nviews_handler_filter_term_node_tid_depth.inc +files[] = includes/i18nviews_handler_filter_field_list.inc ; Information added by drupal.org packaging script on 2011-05-29 version = "7.x-3.x-dev" diff --git a/includes/i18nviews.views.inc b/includes/i18nviews.views.inc index 1c79d4b..c768622 100644 --- a/includes/i18nviews.views.inc +++ b/includes/i18nviews.views.inc @@ -171,6 +171,21 @@ function i18nviews_field_views_data(&$result, &$field, $module) { } /** + * Implements hook_field_views_data_alter(). + */ +function i18nviews_field_views_data_alter(&$result, $field, $module) { + if ($module == 'list') { + foreach ($result as $table_name => $table_data) { + foreach ($table_data as $field_name => $field_data) { + if (isset($field_data['filter'])) { + $result[$table_name][$field_name]['filter']['handler'] = 'i18nviews_handler_filter_field_list'; + } + } + } + } +} + +/** * Implementation of hook_views_plugins(). */ function i18nviews_views_plugins() { diff --git a/includes/i18nviews_handler_filter_field_list.inc b/includes/i18nviews_handler_filter_field_list.inc new file mode 100644 index 0000000..4e51d6c --- /dev/null +++ b/includes/i18nviews_handler_filter_field_list.inc @@ -0,0 +1,23 @@ +definition['field_name']); + + if (module_exists('i18n_field')) { + // Translate list options + // See /i18n/i18n_field/i18n_field.module, i18n_field_field_widget_form() + if (($translate = i18n_field_type_info($field['type'], 'translate_options')) && !empty($field['settings']['allowed_values'])) { + // Call i18n_field_translate_allowed_values() + $field['settings']['allowed_values'] = $translate($field); + } + } + + $this->value_options = list_allowed_values($field); + } + +}