]> gitweb.fluxo.info Git - drupal/muamba.git/commitdiff
Adding views support
authorSilvio Rhatto <rhatto@riseup.net>
Fri, 7 Oct 2011 14:52:54 +0000 (11:52 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Fri, 7 Oct 2011 14:52:54 +0000 (11:52 -0300)
muamba.module
muamba.views.inc [new file with mode: 0644]

index 840136dc91a3b2269047ace761ddd0b604da6b56..0cfe9772c426a3fa0601336ca1c106bbfe756dec 100644 (file)
@@ -269,3 +269,23 @@ function muamba_user_delete($account) {
     ->condition('owner', $account->uid)
     ->execute();
 }
+
+/**
+ * Register View API information. This is required for your module to have
+ * its include files loaded; for example, when implementing
+ * hook_views_default_views().
+ *
+ * @return
+ *   An array with the following possible keys:
+ *   - api:  (required) The version of the Views API the module implements.
+ *   - path: (optional) If includes are stored somewhere other than within
+ *       the root module directory, specify its path here.
+ *   - template path: (optional) A path where the module has stored it's views template files.
+ *        When you have specificed this key views automatically uses the template files for the views.
+ *        You can use the same naming conventions like for normal views template files.
+ */
+function muamba_views_api() {
+  return array(
+    'api' => 3,
+  );
+}
diff --git a/muamba.views.inc b/muamba.views.inc
new file mode 100644 (file)
index 0000000..c1f77a0
--- /dev/null
@@ -0,0 +1,110 @@
+<?php
+
+/**
+ * @file
+ */
+
+/**
+ * Implements hook_views_data()
+ */
+function muamba_views_data() {
+  // Group index.
+  $data['muamba']['table']['group'] = t('Muamba');
+
+  // Define this as a base table.
+  $data['muamba']['table']['base'] = array(
+    'field'  => 'mid', 
+    'title'  => t('Muamba'), 
+    'help'   => t("Muamba contains transaction data related to users and nodes"), 
+    'weight' => -10,
+  );
+
+  $data['muamba']['table']['join'] = array(
+    'node' => array(
+      'left_field' => 'nid', 
+      'field'      => 'nid',
+    ),
+  );
+
+  // Transaction Id.
+  $data['muamba']['mid'] = array(
+    'title' => t('Id'), 
+    'help'  => t('Transaction Id'), 
+    'field' => array(
+      'handler'        => 'views_handler_field_numeric', 
+      'click sortable' => TRUE,
+    ), 
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ), 
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );  
+
+  // Node ID field.
+  $data['muamba']['nid'] = array(
+    'title' => t('Muamba node asset'), 
+    'help'  => t('The node in a muamba transaction.'),
+    'relationship' => array(
+      'base'    => 'node', 
+      'field'   => 'nid', 
+      'handler' => 'views_handler_relationship', 
+      'label'   => t('Muamba node'),
+    ),
+  );
+
+  // User ID field.
+  $data['muamba']['uid'] = array(
+    'title' => t('Muamba requester user'), 
+    'help'  => t('The user that initiated a transaction.'),
+    'relationship' => array(
+      'base'    => 'users', 
+      'field'   => 'uid', 
+      'handler' => 'views_handler_relationship', 
+      'label'   => t('Muamba requester'),
+    ),
+  );
+
+  // User ID field.
+  $data['muamba']['owner'] = array(
+    'title' => t('Muamba asset owner'), 
+    'help'  => t('The user that owns an asset.'),
+    'relationship' => array(
+      'base'    => 'users', 
+      'field'   => 'uid', 
+      'handler' => 'views_handler_relationship', 
+      'label'   => t('Muamba item owner'),
+    ),
+  );
+
+  // Thread ID field.
+  $data['muamba']['thread_id'] = array(
+    'title' => t('Thread'), 
+    'help'  => t('The transaction negotiation thread.'),
+    'relationship' => array(
+      'base'    => 'pm_index', 
+      'field'   => 'thread_id', 
+      'handler' => 'views_handler_relationship', 
+      'label'   => t('Muamba thread'),
+    ),
+  );  
+
+  // Transaction status.
+  $data['muamba']['status'] = array(
+    'title' => t('Status'), 
+    'help'  => t('Transaction status'), 
+    'field' => array(
+      'handler'        => 'views_handler_field_numeric', 
+      'click sortable' => TRUE,
+    ), 
+    'filter' => array(
+      'handler' => 'views_handler_filter_numeric',
+    ), 
+    'sort' => array(
+      'handler' => 'views_handler_sort',
+    ),
+  );
+
+  return $data;
+}