summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEarl Miles2009-02-23 22:20:04 (GMT)
committer Earl Miles2009-02-23 22:20:04 (GMT)
commit7e942f0adbf788771b46b88904bc69a6aaf581f9 (patch)
treef8ad3ae84fbbe03260600319025ebab4c0ac93d1
parent1c3da6192de97ddcf93d156b73663c0da1cd651a (diff)
Another file I forgot to cvs add from an earlier commit.
-rw-r--r--modules/locale.views.inc247
1 files changed, 247 insertions, 0 deletions
diff --git a/modules/locale.views.inc b/modules/locale.views.inc
new file mode 100644
index 0000000..a18edb5
--- /dev/null
+++ b/modules/locale.views.inc
@@ -0,0 +1,247 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ *
+ * Provides views data and handlers for locale.module.
+ */
+
+/**
+ * @defgroup views_locale_module locale.module handlers
+ *
+ * @{
+ */
+
+/**
+ * Implementation of hook_views_data().
+ */
+function locale_views_data() {
+ // Basic table information.
+
+ // Define the base group of this table.
+ $data['locales_source']['table']['group'] = t('Locale source');
+
+ // Advertise this table as a possible base table.
+ $data['locales_source']['table']['base'] = array(
+ 'field' => 'lid',
+ 'title' => t('Locale source'),
+ 'help' => t('A source string for translation, in English or the default site language.'),
+ );
+
+ // lid
+ $data['locales_source']['lid'] = array(
+ 'title' => t('LID'),
+ 'help' => t('The ID of the source string.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field',
+ 'click sortable' => TRUE,
+ ),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_numeric',
+ 'numeric' => TRUE,
+ 'validate type' => 'lid',
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_numeric',
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ );
+
+ // location
+ $data['locales_source']['location'] = array(
+ 'group' => t('Locale source'),
+ 'title' => t('Location'),
+ 'help' => t('A description of the location or context of the string.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field',
+ 'click sortable' => TRUE,
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_string',
+ ),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_string',
+ ),
+ );
+
+ // Group field
+ $data['locales_source']['textgroup'] = array(
+ 'group' => t('Locale source'),
+ 'title' => t('Group'),
+ 'help' => t('The group the translation is in.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_locale_group',
+ 'click sortable' => TRUE,
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_locale_group',
+ ),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_locale_group',
+ ),
+ );
+
+ // Source field
+ $data['locales_source']['source'] = array(
+ 'group' => t('Locale source'),
+ 'title' => t('Source'),
+ 'help' => t('The full original string.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field',
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_string',
+ ),
+ );
+
+ // Version field
+ $data['locales_source']['version'] = array(
+ 'group' => t('Locale source'),
+ 'title' => t('Version'),
+ 'help' => t('The version of Drupal core that this string is for.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field',
+ 'click sortable' => TRUE,
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_locale_version',
+ ),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_string',
+ ),
+ );
+
+ $data['locales_source']['edit_lid'] = array(
+ 'group' => t('Locale source'),
+ 'field' => array(
+ 'title' => t('Edit link'),
+ 'help' => t('Provide a simple link to edit the translations.'),
+ 'handler' => 'views_handler_field_locale_link_edit',
+ ),
+ );
+
+ // ----------------------------------------------------------------------
+ // Locales target table
+
+ // Define the base group of this table. Fields that don't
+ // have a group defined will go into this field by default.
+ $data['locales_target']['table']['group'] = t('Locale target');
+
+ // Join information
+ $data['locales_target']['table']['join'] = array(
+ 'locales_source' => array(
+ 'left_field' => 'lid',
+ 'field' => 'lid',
+ ),
+ );
+
+ // Translation field
+ $data['locales_target']['translation'] = array(
+ 'group' => t('Locale target'),
+ 'title' => t('Translation'),
+ 'help' => t('The full translation string.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field',
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_string',
+ ),
+ );
+
+ // Language field
+ $data['locales_target']['language'] = array(
+ 'group' => t('Locale target'),
+ 'title' => t('Language'),
+ 'help' => t('The language this translation is in.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_locale_language',
+ 'click sortable' => TRUE,
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_locale_language',
+ ),
+ 'argument' => array(
+ 'handler' => 'views_handler_argument_locale_language',
+ ),
+ );
+
+ $data['locales_target']['plid'] = array(
+ 'group' => t('Locale target'),
+ 'title' => t('Singular LID'),
+ 'help' => t('The ID of the parent translation.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field',
+ ),
+ );
+
+ // Plural
+ $data['locales_target']['plural'] = array(
+ 'group' => t('Locale target'),
+ 'title' => t('Plural'),
+ 'help' => t('Whether or not the translation is plural.'),
+ 'field' => array(
+ 'handler' => 'views_handler_field_boolean',
+ 'click sortable' => TRUE,
+ ),
+ 'filter' => array(
+ 'handler' => 'views_handler_filter_boolean_operator',
+ 'label' => t('Plural'),
+ 'type' => 'yes-no',
+ ),
+ 'sort' => array(
+ 'handler' => 'views_handler_sort',
+ ),
+ );
+
+ return $data;
+}
+
+/**
+ * Implementation of hook_views_handlers().
+ */
+function locale_views_handlers() {
+ return array(
+ 'info' => array(
+ 'path' => drupal_get_path('module', 'views') . '/modules/locale',
+ ),
+ 'handlers' => array(
+ // Field handlers.
+ 'views_handler_field_locale_group' => array(
+ 'parent' => 'views_handler_field',
+ ),
+ 'views_handler_field_locale_language' => array(
+ 'parent' => 'views_handler_field',
+ ),
+ 'views_handler_field_locale_link_edit' => array(
+ 'parent' => 'views_handler_field',
+ ),
+ // Argument handlers.
+ 'views_handler_argument_locale_group' => array(
+ 'parent' => 'views_handler_argument',
+ ),
+ 'views_handler_argument_locale_language' => array(
+ 'parent' => 'views_handler_argument',
+ ),
+ // Filters.
+ 'views_handler_filter_locale_group' => array(
+ 'parent' => 'views_handler_filter_in_operator',
+ ),
+ 'views_handler_filter_locale_language' => array(
+ 'parent' => 'views_handler_filter_in_operator',
+ ),
+ 'views_handler_filter_locale_version' => array(
+ 'parent' => 'views_handler_filter_in_operator',
+ ),
+ ),
+ );
+}
+
+/**
+ * @}
+ */