--- vote_up_down/vud_node/vud_node.module	2010-08-18 07:25:17.000000000 -0700
+++ vote_up_down/vud_node/vud_node.module	2010-11-16 18:36:13.000000000 -0800
@@ -89,6 +89,13 @@ function vud_node_admin_settings() {
     '#default_value' => variable_get('vud_node_widget', 'updown'),
     '#options'       => vud_widget_get_names(),
   );
+  $form['vud_node_widget_placement'] = array(
+    '#title'         => t('Widget placement'),
+    '#description'   => t('Choose whether the voting widget should be displayed in node content or links.'),
+    '#type'          => 'radios',
+    '#default_value' => variable_get('vud_node_widget_placement', 0),
+    '#options'       => array(0 => 'Content', 1 => 'Links'),
+  );
   $form['vud_node_widget_show'] = array(
     '#type'          => 'select',
     '#title'         => t('Widget and votes display'),
@@ -190,6 +197,10 @@ function vud_node_nodeapi(&$node, $op, $
               );
               break;
           }
+          
+          if (variable_get('vud_node_widget_placement', 0) == 1) {
+            unset($node->content['vud_node_widget_display']);
+          }
 
         }
       }
@@ -256,11 +267,26 @@ function vud_node_link($type, $object, $
       $widget_theme = variable_get('vud_node_widget', 'plain');
       $tag = variable_get('vud_tag', 'vote');
       $view_vud_node_votes_count = user_access('view vote up/down count on nodes') || user_access('use vote up/down on nodes');
+      $vote_on_teaser = (bool)variable_get('vud_node_widget_vote_on_teaser', TRUE);
+      $can_edit = user_access('use vote up/down on nodes');
+      $widget_message_code = VUD_WIDGET_MESSAGE_ERROR;
+      if (!$can_edit) {
+        $widget_message_code = VUD_WIDGET_MESSAGE_DENIED;
+      }
+      elseif (!$vote_on_teaser) {
+        $widget_message_code = VUD_NODE_WIDGET_MESSAGE_TEASER_DENIED;
+      }
       switch ($votes_display_mode) {
         case VUD_NODE_DISPLAY_NO:
           break;
         case VUD_NODE_DISPLAY_TEASER_ONLY:
           if (($teaser == 1) && $node_type && $view_vud_node_votes_count) {
+            if ($can_edit && variable_get('vud_node_widget_placement', 0) == 1) {
+              $links['vud_node_widget'] = array(
+                'title' => theme('vud_widget', $node->nid, 'node', $tag, $widget_theme, !$vote_on_teaser || !$can_edit, $widget_message_code),
+                'html'  => TRUE,
+              );
+            }
             $links['vud_node_votes_count'] = array(
               'title' => theme('vud_votes', $node->nid, $type, $tag, $widget_theme),
               'html'  => TRUE,
@@ -269,6 +295,12 @@ function vud_node_link($type, $object, $
           break;
         case VUD_NODE_DISPLAY_FULL_ONLY:
           if (($teaser == 0) && $node_type && $view_vud_node_votes_count) {
+            if ($can_edit && variable_get('vud_node_widget_placement', 0) == 1) {
+              $links['vud_node_widget'] = array(
+                'title' => theme('vud_widget', $node->nid, 'node', $tag, $widget_theme, !$can_edit, $widget_message_code),
+                'html'  => TRUE,
+              );
+            }
             $links['vud_node_votes_count'] = array(
               'title' => theme('vud_votes', $node->nid, $type, $tag, $widget_theme),
               'html'  => TRUE,
@@ -277,6 +309,18 @@ function vud_node_link($type, $object, $
           break;
         case VUD_NODE_DISPLAY_BOTH:
           if ($node_type && $view_vud_node_votes_count) {
+            if ($can_edit && variable_get('vud_node_widget_placement', 0) == 1) {
+              if ($teaser == TRUE) {
+                $readonly = !$vote_on_teaser || !$can_edit;
+              }
+              else {
+                $readonly = !$can_edit;
+              }
+              $links['vud_node_widget'] = array(
+                'title' => theme('vud_widget', $node->nid, 'node', $tag, $widget_theme, $read_only, $widget_message_code),
+                'html'  => TRUE,
+              );
+            }
             $links['vud_node_votes_count'] = array(
               'title' => theme('vud_votes', $node->nid, $type, $tag, $widget_theme),
               'html'  => TRUE,
