Index: drupalit.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/drupalit/drupalit.module,v
retrieving revision 1.14
diff -u -r1.14 drupalit.module
--- drupalit.module	5 Jul 2007 22:22:52 -0000	1.14
+++ drupalit.module	1 Apr 2008 08:59:40 -0000
@@ -29,9 +29,16 @@
     );
   }
   $items[] = array(
-    'path' => 'drupalit/count-vote',
+    'path' => 'drupalit/vote-up',
     'title' => t('Drupalit'),
-    'callback' => 'drupalit_count_vote',
+    'callback' => 'drupalit_vote_up',
+    'access' => user_access('vote drupalit'),
+    'type' => MENU_CALLBACK,
+  );
+  $items[] = array(
+    'path' => 'drupalit/vote-down',
+    'title' => t('Drupalit'),
+    'callback' => 'drupalit_vote_down',
     'access' => user_access('vote drupalit'),
     'type' => MENU_CALLBACK,
   );
@@ -234,7 +241,8 @@
 function drupalit_drupalit_node($nid) {
 
   $data = _drupalit_data($nid);
-  $url = l('<span id="vote-text-'.$nid.'" class="vote-text">'.t('vote').'</span>', 'drupalit/count-vote/'.$nid.'/1', $attributes = array(), $query = NULL, $fragment = NULL, $absolute = FALSE, $html = TRUE);
+  $url_up = l('<span id="vote-text-up-'.$nid.'" class="vote-text">'.t('Up').'</span>', 'drupalit/vote-up/'.$nid.'/1', $attributes = array(), $query = NULL, $fragment = NULL, $absolute = FALSE, $html = TRUE);
+  $url_down= l('<span id="vote-text-down-'.$nid.'" class="vote-text">'.t('Down').'</span>', 'drupalit/vote-down/'.$nid.'/-1', $attributes = array(), $query = NULL, $fragment = NULL, $absolute = FALSE, $html = TRUE);
   if ($data['uid'] != 0) {	
     if ($data['user_vote_time']) {
       $now = time();
@@ -242,7 +250,7 @@
       $check_time = $data['user_vote_time'] + $interval;
       if ($check_time > $now || $interval == -1) {
         $output = '
-	<div id="vote-wrap-'.$nid.'" class="vote-wrap">
+	<div id="vote-wrap-'.$nid.'" class="vote-wrap-voted">
 		<div class="vote-counted">'.$data['votes'].'</div>
 		<span id="vote-text-'.$nid.'" class="voted-text">'.t('voted').'</span>
 	</div>
@@ -252,7 +260,7 @@
         $output = '
 	<div id="vote-wrap-'.$nid.'" class="vote-wrap">
 		<div id="vote-count-'.$nid.'" class="vote-count">'.$data['votes'].'</div>
-		'.$url.'
+		<div>'.$url_up.'</div><div>'.$url_down.'</div>
 	</div>
 ';
       }
@@ -261,7 +269,7 @@
       $output = '
 	<div id="vote-wrap-'.$nid.'" class="vote-wrap">
 		<div id="vote-count-'.$nid.'" class="vote-count">'.$data['votes'].'</div>
-		'.$url.'
+		<div>'.$url_up.'</div><div>'.$url_down.'</div>
 	</div>
 ';
     }
@@ -281,7 +289,7 @@
       $check_time = $data['user_vote_time'] + $interval;
       if ($check_time > $now || $interval == -1) {
         $output = '
-	<div id="vote-wrap-'.$nid.'" class="vote-wrap">
+	<div id="vote-wrap-'.$nid.'" class="vote-wrap-voted">
 		<div class="vote-counted">'.$data['votes'].'</div>
 		<span id="vote-text-'.$nid.'" class="voted-text">'.t('voted').'</span>
 	</div>
@@ -291,7 +299,7 @@
         $output = '
 	<div id="vote-wrap-'.$nid.'" class="vote-wrap">
 		<div id="vote-count-'.$nid.'" class="vote-count">'.$data['votes'].'</div>
-		'.$url.'
+	<div>'.$url_up.'</div><div>'.$url_down.'</div>
 	</div>
 ';
       }
@@ -300,7 +308,7 @@
       $output = '
 	<div id="vote-wrap-'.$nid.'" class="vote-wrap">
 		<div id="vote-count-'.$nid.'" class="vote-count">'.$data['votes'].'</div>
-		'.$url.'
+		<div>'.$url_up.'</div><div>'.$url_down.'</div>
 	</div>
 ';
     }
@@ -309,7 +317,9 @@
   return $output;
 }
 
-function drupalit_count_vote($nid, $ajax = FALSE) {
+function drupalit_vote_up($nid, $ajax = FALSE) {
+//print "in vote up";
+$mPath=$_GET['q'];
   if ($ajax && user_access('vote drupalit')) {
     $data = _drupalit_data($nid);
     if ($data['user_vote_time']) {
@@ -395,8 +405,103 @@
         db_query("INSERT INTO {drupalit_user_to_vote} (nid, uid, voted, votes, ip, daily_votes, daily_first_vote, weekly_votes, weekly_first_vote, monthly_votes, monthly_first_vote) VALUES (%d, %d, %d, %d, '%s', %d, %d, %d, %d, %d, %d)", $nid, $data['uid'], time(), $data['vote_power'], $data['ip'], $data['vote_power'], time(), $data['vote_power'], time(), $data['vote_power'], time());
       }
     }
-    print '<div class="vote-counted">'.$votes.'</div><span id="vote-text-'.$nid.'" class="voted-text">'.t('voted').'</span>';
-    exit();
+	/*print '<div class="vote-counted">'.$votes.'</div><span id="vote-text-'.$nid.'" class="voted-text">'.t('voted').'</span>';*/
+   // exit();
+   drupal_goto("node/".$nid);
+  }
+}
+
+function drupalit_vote_down($nid, $ajax = FALSE) {
+$mPath=$_GET['q'];
+  if ($ajax && user_access('vote drupalit')) {
+    $data = _drupalit_data($nid);
+    if ($data['user_vote_time']) {
+      $now = time();
+      $interval = variable_get('drupalit_interval', 3600);
+      $check_time = $data['user_vote_time'] + $interval;
+      if ($check_time > $now || $interval == -1) {
+        return;
+      }
+    }
+    $data['vote_power']=-1;
+	if ($data['votes'] == 0) {
+	     $votes = $data['votes'] + $data['vote_power'];
+	    db_query("INSERT INTO {drupalit_votes} (nid, votes, last_vote, first_vote, daily_votes, daily_first_vote, weekly_votes, weekly_first_vote, monthly_votes, monthly_first_vote) VALUES (%d, %d, %d, %d, %d, %d, %d, %d, %d, %d)", $nid, $votes, time(), time(), $votes, time(), $votes, time(), $votes, time());
+      db_query("INSERT INTO {drupalit_user_to_vote} (nid, uid, voted, votes, ip, daily_votes, daily_first_vote, weekly_votes, weekly_first_vote, monthly_votes, monthly_first_vote) VALUES (%d, %d, %d, %d, '%s', %d, %d, %d, %d, %d, %d)", $nid, $data['uid'], time(), $votes, $data['ip'], $votes, time(), $votes, time(), $votes, time());
+    }
+    else {
+      $votes = $data['votes'] + $data['vote_power'];
+      if (($data['daily_first_vote']+86400) < time()) {
+        $data['daily_first_vote'] = time();
+        $data['daily_votes'] = $data['vote_power'];
+      }
+      else {
+        $data['daily_votes'] = $data['daily_votes'] + $data['vote_power'];
+        if (!$data['daily_first_vote']) {
+          $data['daily_first_vote'] = time();
+        }
+      }
+      if (($data['weekly_first_vote']+604800) < time()) {
+        $data['weekly_first_vote'] = time();
+        $data['weekly_votes'] = $data['vote_power'];
+      }
+      else {
+        $data['weekly_votes'] = $data['weekly_votes'] + $data['vote_power'];
+        if (!$data['weekly_first_vote']) {
+          $data['weekly_first_vote'] = time();
+        }
+      }
+      if (($data['monthly_first_vote']+2592000) < time()) {
+        $data['monthly_first_vote'] = time();
+        $data['monthly_votes'] = $data['vote_power'];
+      }
+      else {
+        $data['monthly_votes'] = $data['monthly_votes'] + $data['vote_power'];
+        if (!$data['monthly_first_vote']) {
+          $data['monthly_first_vote'] = time();
+        }
+      }
+      if (($data['user_daily_first_vote']+86400) < time()) {
+        $data['user_daily_first_vote'] = time();
+        $data['user_daily_votes'] = $data['vote_power'];
+      }
+      else {
+        $data['user_daily_votes'] = $data['user_daily_votes'] + $data['vote_power'];
+        if (!$data['user_daily_first_vote']) {
+          $data['user_daily_first_vote'] = time();
+        }
+      }
+      if (($data['user_weekly_first_vote']+604800) < time()) {
+        $data['user_weekly_first_vote'] = time();
+        $data['user_weekly_votes'] = $data['vote_power'];
+      }
+      else {
+        $data['user_weekly_votes'] = $data['user_weekly_votes'] + $data['vote_power'];
+        if (!$data['user_weekly_first_vote']) {
+          $data['user_weekly_first_vote'] = time();
+        }
+      }
+      if (($data['user_monthly_first_vote']+2592000) < time()) {
+        $data['user_monthly_first_vote'] = time();
+        $data['user_monthly_votes'] = $data['vote_power'];
+      }
+      else {
+        $data['user_monthly_votes'] = $data['user_monthly_votes'] + $data['vote_power'];
+        if (!$data['user_monthly_first_vote']) {
+          $data['user_monthly_first_vote'] = time();
+        }
+      }
+      db_query("UPDATE {drupalit_votes} SET votes = votes + %d, last_vote = %d, daily_votes = %d, daily_first_vote = %d, weekly_votes = %d, weekly_first_vote = %d, monthly_votes = %d, monthly_first_vote = %d WHERE nid = %d", $data['vote_power'], time(), $data['daily_votes'], $data['daily_first_vote'], $data['weekly_votes'], $data['weekly_first_vote'], $data['monthly_votes'], $data['monthly_first_vote'], $nid);
+      if ($data['user_voted']) {
+        db_query("UPDATE {drupalit_user_to_vote} SET votes = votes + %d, voted = %d, ip = '%s', daily_votes = %d, daily_first_vote = %d, weekly_votes = %d, weekly_first_vote = %d, monthly_votes = %d, monthly_first_vote = %d WHERE nid = %d AND uid = %d", $data['vote_power'], time(), $_SERVER['REMOTE_ADDR'], $data['daily_votes'], $data['daily_first_vote'], $data['weekly_votes'], $data['weekly_first_vote'], $data['monthly_votes'], $data['monthly_first_vote'], $nid, $data['uid']);
+      }
+      else {
+        db_query("INSERT INTO {drupalit_user_to_vote} (nid, uid, voted, votes, ip, daily_votes, daily_first_vote, weekly_votes, weekly_first_vote, monthly_votes, monthly_first_vote) VALUES (%d, %d, %d, %d, '%s', %d, %d, %d, %d, %d, %d)", $nid, $data['uid'], time(), $data['vote_power'], $data['ip'], $data['vote_power'], time(), $data['vote_power'], time(), $data['vote_power'], time());
+      }
+    }
+    /*print '<div class="vote-counted">'.$votes.'</div><span id="vote-text-'.$nid.'" class="voted-text">'.t('voted').'</span>';*/
+    //exit();
+	drupal_goto("node/".$nid);
   }
 }
 

