diff --git a/i18nviews.info b/i18nviews.info index f9d8fbe..9cd83d0 100644 --- a/i18nviews.info +++ b/i18nviews.info @@ -19,10 +19,12 @@ files[] = includes/i18nviews_handler_field_taxonomy_term_description.inc files[] = includes/i18nviews_handler_field_taxonomy_term_language.inc files[] = includes/i18nviews_handler_field_taxonomy_term_name.inc files[] = includes/i18nviews_handler_field_term_node_tid.inc +files[] = includes/i18nviews_handler_field_node_type.inc files[] = includes/i18nviews_handler_filter_field_list.inc files[] = includes/i18nviews_handler_filter_taxonomy_index_tid.inc files[] = includes/i18nviews_handler_filter_taxonomy_term_name.inc files[] = includes/i18nviews_handler_filter_taxonomy_term_language.inc files[] = includes/i18nviews_handler_filter_term_node_tid_depth.inc +files[] = includes/i18nviews_handler_filter_node_type.inc files[] = includes/i18nviews_plugin_argument_validate_i18n_taxonomy_term.inc files[] = includes/i18nviews_plugin_localization_i18nstrings.inc diff --git a/includes/i18nviews.views.inc b/includes/i18nviews.views.inc index 364687a..8be3aef 100644 --- a/includes/i18nviews.views.inc +++ b/includes/i18nviews.views.inc @@ -7,6 +7,10 @@ function i18nviews_views_data_alter(&$data) { if (module_exists('i18n_taxonomy')) { i18nviews_views_data_alter_i18n_taxonomy($data); } + + if (module_exists('i18n_node')) { + i18nviews_views_data_alter_i18n_node($data); + } } /** @@ -165,6 +169,11 @@ function i18nviews_views_data_alter_i18n_taxonomy(&$data) { */ } +function i18nviews_views_data_alter_i18n_node(&$data) { + $data['node']['type']['field']['handler'] = 'i18nviews_handler_field_node_type'; + $data['node']['type']['filter']['handler'] = 'i18nviews_handler_filter_node_type'; +} + /** * Implementation of hook_field_views_data_alter(). */ diff --git a/includes/i18nviews_handler_field_node_type.inc b/includes/i18nviews_handler_field_node_type.inc new file mode 100644 index 0000000..ec9c602 --- /dev/null +++ b/includes/i18nviews_handler_field_node_type.inc @@ -0,0 +1,23 @@ +options['machine_name'] != 1 && $data !== NULL && $data !== '') { + return $this->sanitize_value(i18n_node_type_name($data, node_type_get_name($data))); + } + return $this->sanitize_value($data); + } +} diff --git a/includes/i18nviews_handler_filter_node_type.inc b/includes/i18nviews_handler_filter_node_type.inc new file mode 100644 index 0000000..8005921 --- /dev/null +++ b/includes/i18nviews_handler_filter_node_type.inc @@ -0,0 +1,29 @@ +value_options)) { + $this->value_title = t('Content types'); + $types = node_type_get_types(); + $options = array(); + foreach ($types as $type => $info) { + $options[$type] = i18n_node_type_name($type, $info->name); + } + asort($options); + $this->value_options = $options; + } + } +}