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(''.t('vote').'', 'drupalit/count-vote/'.$nid.'/1', $attributes = array(), $query = NULL, $fragment = NULL, $absolute = FALSE, $html = TRUE); + $url_up = l(''.t('Up').'', 'drupalit/vote-up/'.$nid.'/1', $attributes = array(), $query = NULL, $fragment = NULL, $absolute = FALSE, $html = TRUE); + $url_down= l(''.t('Down').'', '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 = ' -
+
'.$data['votes'].'
'.t('voted').'
@@ -252,7 +260,7 @@ $output = '
'.$data['votes'].'
- '.$url.' +
'.$url_up.'
'.$url_down.'
'; } @@ -261,7 +269,7 @@ $output = '
'.$data['votes'].'
- '.$url.' +
'.$url_up.'
'.$url_down.'
'; } @@ -281,7 +289,7 @@ $check_time = $data['user_vote_time'] + $interval; if ($check_time > $now || $interval == -1) { $output = ' -
+
'.$data['votes'].'
'.t('voted').'
@@ -291,7 +299,7 @@ $output = '
'.$data['votes'].'
- '.$url.' +
'.$url_up.'
'.$url_down.'
'; } @@ -300,7 +308,7 @@ $output = '
'.$data['votes'].'
- '.$url.' +
'.$url_up.'
'.$url_down.'
'; } @@ -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 '
'.$votes.'
'.t('voted').''; - exit(); + /*print '
'.$votes.'
'.t('voted').'';*/ + // 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 '
'.$votes.'
'.t('voted').'';*/ + //exit(); + drupal_goto("node/".$nid); } }