From feb605d73626c8508ce6491ff8fe6ae5429e7d24 Mon Sep 17 00:00:00 2001
From: Chris Trahey <christrahey@gmail.com>
Date: Sun, 27 Jan 2013 23:06:27 -0800
Subject: [PATCH] A Views Field Handler for share links in Views.

---
 rpx_ui.info                          |  1 +
 views/rpx_ui.views.inc               | 10 +++++++++
 views/rpx_ui_handler_field_share.inc | 42 ++++++++++++++++++++++++++++++++++++
 3 files changed, 53 insertions(+)
 create mode 100644 views/rpx_ui_handler_field_share.inc

diff --git a/rpx_ui.info b/rpx_ui.info
index 3a5a008..01e68f6 100755
--- a/rpx_ui.info
+++ b/rpx_ui.info
@@ -14,6 +14,7 @@ files[] = views/rpx_ui_handler_field_provider_icon.inc
 files[] = views/rpx_ui_handler_field_delete_link.inc
 files[] = views/rpx_ui_handler_filter_provider_name.inc
 files[] = views/rpx_ui_handler_filter_provider_title.inc
+files[] = views/rpx_ui_handler_field_share.inc
 configure = admin/config/people/rpx
 
 
diff --git a/views/rpx_ui.views.inc b/views/rpx_ui.views.inc
index ad3fa7a..eba1673 100755
--- a/views/rpx_ui.views.inc
+++ b/views/rpx_ui.views.inc
@@ -9,6 +9,16 @@
  * Implements hook_views_data().
  */
 function rpx_ui_views_data() {
+  $data = array();
+  $data['node']['share_link'] = array(
+    'group' => t('Janrain Engage'),
+    'title' => t('Engage Share Link'),
+    'help' => t('A link to share the content with Janrain Engage.'),
+    'field' => array(
+      'handler' => 'rpx_ui_handler_field_share',
+    ),
+  );  
+  
   $data['rpx_linked_account']['table']['group']  = t('Janrain Engage');
 
   $data['rpx_linked_account']['table']['join'] = array(
diff --git a/views/rpx_ui_handler_field_share.inc b/views/rpx_ui_handler_field_share.inc
new file mode 100644
index 0000000..ebc712c
--- /dev/null
+++ b/views/rpx_ui_handler_field_share.inc
@@ -0,0 +1,42 @@
+<?php
+/**
+ * @file
+ * Contains the Engage Share Link field handler.
+ * 
+ * @author Chris Trahey <christrahey@gmail.com>
+ */
+
+/**
+ * Provides Engage Share Button as Views Field
+ */
+class rpx_ui_handler_field_share extends views_handler_field_custom {
+
+  /**
+   * Add nid as an additional field.
+   */
+  function construct() {
+    parent::construct();
+    $this->additional_fields['nid'] = 'nid';
+  }
+  
+
+  /**
+   * Renders our field
+   * @uses _rpx_share_button()
+   */
+  function render($values) {
+    $nid =  $values->{$this->aliases['nid']};
+    $node = node_load($nid);
+    return _rpx_share_button($node);
+  }
+  
+  /**
+   * Basic checks.
+   */
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+  
+
+}
\ No newline at end of file
-- 
1.8.0

