Index: service_links.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/service_links/service_links.module,v
retrieving revision 1.26
diff -u -p -r1.26 service_links.module
--- service_links.module	26 Feb 2008 17:01:27 -0000	1.26
+++ service_links.module	17 Jun 2009 15:04:51 -0000
@@ -476,3 +476,13 @@ function _service_links_show($node) {
 
   return $links_show;
 }
+
+/**
+ * Implementation of hook_views_api().
+ */
+function service_links_views_api() {
+  return array(
+    'api' => 2,
+    'path' => drupal_get_path('module', 'service_links'),
+  );
+}
\ No newline at end of file
Index: service_links.views.inc
===================================================================
RCS file: service_links.views.inc
diff -N service_links.views.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ service_links.views.inc	17 Jun 2009 15:04:51 -0000
@@ -0,0 +1,38 @@
+<?php
+// $Id$
+/**
+ * @file
+ * Provide views data and handlers for custom_teasers_views.module
+ */
+
+/**
+ * Implementation of hook_views_data().
+ */
+function service_links_views_data() {
+  // We're registering the 'custom_teasers' table.
+  $data['node']['service_links'] = array(
+    'title' => t('Service links'),
+    'help' => t('Display links to social sharing websites like Digg, del.icio.us, reddit, Technorati etc..'),
+    'field' => array(
+      'handler' => 'service_links_handler_field_service_links',
+    ),
+  );
+
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_handlers().
+ */
+function service_links_views_handlers() {
+  return array(
+    'info' => array(
+      'path' => drupal_get_path('module', 'service_links'),
+    ),
+    'handlers' => array(
+      'service_links_handler_field_service_links' => array(
+        'parent' => 'views_handler_field',
+      ),
+    ),
+  );
+}
\ No newline at end of file
Index: service_links_handler_field_service_links.inc
===================================================================
RCS file: service_links_handler_field_service_links.inc
diff -N service_links_handler_field_service_links.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ service_links_handler_field_service_links.inc	17 Jun 2009 15:04:51 -0000
@@ -0,0 +1,41 @@
+<?php
+// $Id$
+
+/**
+ * A handler to provide a service links field for a particular node.
+ *
+ * @ingroup views_field_handlers
+ */
+class service_links_handler_field_service_links extends views_handler_field {
+  function construct() {
+    parent::construct();
+    $this->additional_fields['nid'] = 'nid';
+    $this->additional_fields['title'] = 'title';
+  }
+
+  function query() {
+    $this->ensure_my_table();
+    $this->add_additional_fields();
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    // Remove the alteration stuff
+    unset($form['alter']);
+  }
+
+  function render($values) {
+    $node = new stdClass();
+    $node->nid = $values->{$this->aliases['nid']};
+    $node->title = $values->{$this->aliases['title']};
+    // Nothing to render.
+    return theme('links', service_links_render($node, TRUE));
+  }
+}
\ No newline at end of file
