From 97fb3d4b8bd904bb2dd326300ca8e4dc9f2fe194 Mon Sep 17 00:00:00 2001
From: Daniel Wehner <daniel.wehner@erdfisch.de>
Date: Fri, 1 Jun 2012 00:08:21 +0200
Subject: [PATCH] Add basic language.module views integration.

---
 modules/language.views.inc | 95 ++++++++++++++++++++++++++++++++++++++
 views.module               |  4 ++
 2 files changed, 99 insertions(+)
 create mode 100644 modules/language.views.inc

diff --git a/modules/language.views.inc b/modules/language.views.inc
new file mode 100644
index 000000000000..d9065e850819
--- /dev/null
+++ b/modules/language.views.inc
@@ -0,0 +1,95 @@
+<?php
+
+/**
+ * @file
+ * Provide views data and handlers for language.module.
+ *
+ * @ingroup views_module_handlers
+ */
+
+/**
+ * Implements hook_views_data().
+ */
+function language_views_data() {
+  $data['language']['table']['group']  = t('Language');
+
+  $data['language']['table']['base'] = array(
+    'field' => 'langcode',
+    'title' => t('Language'),
+    'help' => t('A language used in drupal.'),
+  );
+
+  // name
+  // direction
+  // weight
+
+  $data['language']['langcode'] = array(
+    'title' => t('Language code'),
+    'help' => t("Language code, e.g. 'de' or 'en-US'."),
+    'field' => array(
+      'handler' => 'views_handler_field',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  $data['language']['name'] = array(
+    'title' => t('Language name'),
+    'help' => t("Language name, e.g. 'German' or 'English'."),
+    'field' => array(
+      'handler' => 'views_handler_field',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_string'
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_string',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  $data['language']['direction'] = array(
+    'title' => t('Direction'),
+    'help' => t('Direction of language (Left-to-Right = 0, Right-to-Left = 1).'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  $data['language']['weight'] = array(
+    'title' => t('Weight'),
+    'help' => t('Weight, used in lists of languages.'),
+    'field' => array(
+      'handler' => 'views_handler_field_numeric',
+    ),
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric'
+    ),
+    'argument' => array(
+      'handler' => 'views_handler_argument_numeric',
+    ),
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  return $data;
+}
diff --git a/views.module b/views.module
index 3d34603365a0..27bb3aa9f079 100644
--- a/views.module
+++ b/views.module
@@ -2397,6 +2397,10 @@ function filter_views_api() { return views_views_api(); }
   function image_views_api() { return views_views_api(); }
 }
 
+if (!function_exists('language_views_api')) {
+  function language_views_api() { return views_views_api(); }
+}
+
 if (!function_exists('locale_views_api')) {
   function locale_views_api() { return views_views_api(); }
 }
-- 
GitLab