diff --git modules/locale.views.inc modules/locale.views.inc index f277dd7..4d577cd 100644 --- modules/locale.views.inc +++ modules/locale.views.inc @@ -203,6 +203,29 @@ function locale_views_data() { } /** + * Implementation of hook_views_data_alter(). + */ +function locale_views_data_alter(&$data) { + // Language field + $data['node']['language'] = array( + 'group' => t('Node translation'), + 'title' => t('Language'), + 'help' => t('The language the content is in.'), + 'field' => array( + 'handler' => 'views_handler_field_node_language', + 'click sortable' => TRUE, + ), + 'filter' => array( + 'handler' => 'views_handler_filter_node_language', + ), + 'argument' => array( + 'handler' => 'views_handler_argument_node_language', + ), + ); +} + + +/** * Implementation of hook_views_handlers(). */ function locale_views_handlers() { @@ -221,6 +244,9 @@ function locale_views_handlers() { 'views_handler_field_locale_link_edit' => array( 'parent' => 'views_handler_field', ), + 'views_handler_field_node_language' => array( + 'parent' => 'views_handler_field_node', + ), // Argument handlers. 'views_handler_argument_locale_group' => array( 'parent' => 'views_handler_argument', diff --git modules/locale/views_handler_argument_node_language.inc modules/locale/views_handler_argument_node_language.inc new file mode 100644 index 0000000..8270d3f --- /dev/null +++ modules/locale/views_handler_argument_node_language.inc @@ -0,0 +1,32 @@ +node_language($data->{$this->name_alias}); + } + + /** + * Override the behavior of title(). Get the user friendly version of the + * node type. + */ + function title() { + return $this->node_language($this->argument); + } + + function node_language($langcode) { + $languages = locale_language_list(); + return isset($languages[$langcode]) ? $languages[$langcode] : t('Unknown language'); + } +} + diff --git modules/locale/views_handler_field_node_language.inc modules/locale/views_handler_field_node_language.inc new file mode 100644 index 0000000..165ed6e --- /dev/null +++ modules/locale/views_handler_field_node_language.inc @@ -0,0 +1,13 @@ +{$this->field_alias}]) ? $languages[$values->{$this->field_alias}] : ''; + return $this->render_link($value, $values); + } +} diff --git modules/locale/views_handler_filter_node_language.inc modules/locale/views_handler_filter_node_language.inc new file mode 100644 index 0000000..6a3549a --- /dev/null +++ modules/locale/views_handler_filter_node_language.inc @@ -0,0 +1,16 @@ +value_options)) { + $this->value_title = t('Language'); + $languages = array('***CURRENT_LANGUAGE***' => t("Current user's language"), '***DEFAULT_LANGUAGE***' => t("Default site language"), '***NO_LANGUAGE***' => t('No language')); + $languages = array_merge($languages, locale_language_list()); + $this->value_options = $languages; + } + } +} + diff --git modules/translation.views.inc modules/translation.views.inc index 1a73cea..40bba5e 100644 --- modules/translation.views.inc +++ modules/translation.views.inc @@ -26,23 +26,6 @@ function translation_views_data_alter(&$data) { 'field' => 'tnid', ); - // Language field - $data['node']['language'] = array( - 'group' => t('Node translation'), - 'title' => t('Language'), - 'help' => t('The language the content is in.'), - 'field' => array( - 'handler' => 'views_handler_field_node_language', - 'click sortable' => TRUE, - ), - 'filter' => array( - 'handler' => 'views_handler_filter_node_language', - ), - 'argument' => array( - 'handler' => 'views_handler_argument_node_language', - ), - ); - // The translation ID (nid of the "source" translation) $data['node']['tnid'] = array( 'group' => t('Node translation'), @@ -143,21 +126,11 @@ function translation_views_handlers() { 'path' => drupal_get_path('module', 'views') . '/modules/translation', ), 'handlers' => array( - // field handlers - 'views_handler_field_node_language' => array( - 'parent' => 'views_handler_field_node', - ), // argument handlers - 'views_handler_argument_node_language' => array( - 'parent' => 'views_handler_argument', - ), 'views_handler_argument_node_tnid' => array( 'parent' => 'views_handler_argument', ), // filters - 'views_handler_filter_node_language' => array( - 'parent' => 'views_handler_filter_in_operator', - ), 'views_handler_filter_node_tnid' => array( 'parent' => 'views_handler_filter', ), diff --git modules/translation/views_handler_argument_node_language.inc modules/translation/views_handler_argument_node_language.inc deleted file mode 100644 index 8270d3f..0000000 --- modules/translation/views_handler_argument_node_language.inc +++ /dev/null @@ -1,32 +0,0 @@ -node_language($data->{$this->name_alias}); - } - - /** - * Override the behavior of title(). Get the user friendly version of the - * node type. - */ - function title() { - return $this->node_language($this->argument); - } - - function node_language($langcode) { - $languages = locale_language_list(); - return isset($languages[$langcode]) ? $languages[$langcode] : t('Unknown language'); - } -} - diff --git modules/translation/views_handler_field_node_language.inc modules/translation/views_handler_field_node_language.inc deleted file mode 100644 index 165ed6e..0000000 --- modules/translation/views_handler_field_node_language.inc +++ /dev/null @@ -1,13 +0,0 @@ -{$this->field_alias}]) ? $languages[$values->{$this->field_alias}] : ''; - return $this->render_link($value, $values); - } -} diff --git modules/translation/views_handler_filter_node_language.inc modules/translation/views_handler_filter_node_language.inc deleted file mode 100644 index 6a3549a..0000000 --- modules/translation/views_handler_filter_node_language.inc +++ /dev/null @@ -1,16 +0,0 @@ -value_options)) { - $this->value_title = t('Language'); - $languages = array('***CURRENT_LANGUAGE***' => t("Current user's language"), '***DEFAULT_LANGUAGE***' => t("Default site language"), '***NO_LANGUAGE***' => t('No language')); - $languages = array_merge($languages, locale_language_list()); - $this->value_options = $languages; - } - } -} -