/[drupal]/contributions/modules/nodevote/nodevote.module
ViewVC logotype

Diff of /contributions/modules/nodevote/nodevote.module

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.31.2.2, Sun Jan 11 16:33:41 2009 UTC revision 1.31.2.3, Sat Oct 17 23:24:52 2009 UTC
# Line 1  Line 1 
1  <?php  <?php
2    
3  //$Id: nodevote.module,v 1.31.2.1 2008/10/15 16:52:12 kbahey Exp $  //$Id: nodevote.module,v 1.31.2.2 2009/01/11 16:33:41 kbahey Exp $
4    
5  // Copyright 2005 Khalid Baheyeldin http://2bits.com  // Copyright 2005 Khalid Baheyeldin http://2bits.com
6    
# Line 11  define('NODEVOTE_TYPE', Line 11  define('NODEVOTE_TYPE',
11  define('NODEVOTE_PERM_VIEW',               'view nodevote');  define('NODEVOTE_PERM_VIEW',               'view nodevote');
12  define('NODEVOTE_PERM_USE',                'use nodevote');  define('NODEVOTE_PERM_USE',                'use nodevote');
13  define('NODEVOTE_VOTE_OWN_NODE',           'nodevote_vote_own_node');  define('NODEVOTE_VOTE_OWN_NODE',           'nodevote_vote_own_node');
14    define('NODEVOTE_VOTE_ANON',               'nodevote_vote_anon');
15  define('NODEVOTE_CHANGE_VOTE',             'nodevote_change_vote');  define('NODEVOTE_CHANGE_VOTE',             'nodevote_change_vote');
16  define('NODEVOTE_RESULT_VOTED',            'nodevote_result_voted');  define('NODEVOTE_RESULT_VOTED',            'nodevote_result_voted');
17  define('NODEVOTE_RESULT_DISPLAY_PAGE',     'nodevote_result_display_page');  define('NODEVOTE_RESULT_DISPLAY_PAGE',     'nodevote_result_display_page');
# Line 138  function nodevote_admin_settings() { Line 139  function nodevote_admin_settings() {
139      '#return_value' => 1,      '#return_value' => 1,
140      '#default_value' => variable_get(NODEVOTE_VOTE_OWN_NODE, 0),      '#default_value' => variable_get(NODEVOTE_VOTE_OWN_NODE, 0),
141    );    );
142      $form[$set][NODEVOTE_VOTE_ANON] = array(
143        '#type' => 'checkbox',
144        '#title' => t('Allow anonymous user to vote.'),
145        '#return_value' => 1,
146        '#default_value' => variable_get(NODEVOTE_VOTE_ANON, 0),
147        '#description' => t('Anonymous users will be able to vote on nodes one time per session.'),
148      );
149    $form[$set][NODEVOTE_DAILY_THRESHOLD] = array(    $form[$set][NODEVOTE_DAILY_THRESHOLD] = array(
150      '#type' => 'select',      '#type' => 'select',
151      '#title' => t('Daily threshold'),      '#title' => t('Daily threshold'),
# Line 280  function nodevote_page($node) { Line 288  function nodevote_page($node) {
288            // check to see if the user has voted too many times today            // check to see if the user has voted too many times today
289            if(_nodevote_within_threshold($user->uid, variable_get(NODEVOTE_DAILY_THRESHOLD, 10))) {            if(_nodevote_within_threshold($user->uid, variable_get(NODEVOTE_DAILY_THRESHOLD, 10))) {
290              // log the vote              // log the vote
291              $result = db_query("INSERT INTO {nodevote} VALUES (%d, %d, %d, %d)", $user->uid, $node->nid, $vote, time());              $result = db_query("INSERT INTO {nodevote} (uid, nid, vote, timestamp) VALUES (%d, %d, %d, %d)", $user->uid, $node->nid, $vote, time());
292              // do the userpoints dance              // do the userpoints dance
293              nodevote_do_userpoints();              nodevote_do_userpoints();
294                // flag session for anon users
295                $_SESSION['nodevote']['anon'][$nid] = TRUE;
296            }            }
297          else {          else {
298            // if they've voted too many times today, show a message            // if they've voted too many times today, show a message
# Line 365  function nodevote_nodeapi(&$node, $op, $ Line 375  function nodevote_nodeapi(&$node, $op, $
375  }  }
376    
377  function _nodevote_user_voted($uid, $nid) {  function _nodevote_user_voted($uid, $nid) {
378      // Anonymous users should check session info
379      if ( $uid == 0 ) {
380        return ($_SESSION['nodevote']['anon'][$node->nid]);
381      }
382    
383    if (db_result(db_query('SELECT count(nid) FROM {nodevote} WHERE uid = %d AND nid = %d', $uid, $nid))) {    if (db_result(db_query('SELECT count(nid) FROM {nodevote} WHERE uid = %d AND nid = %d', $uid, $nid))) {
384      return TRUE;      return TRUE;
385    }    }
# Line 444  function _nodevote_is_votable($node) { Line 459  function _nodevote_is_votable($node) {
459    
460    $ret = FALSE;    $ret = FALSE;
461    
   // Is user logged in?  
   if ($user->uid) {  
462      // Is node type votable?      // Is node type votable?
463      if (variable_get(NODEVOTE_TYPE . $node->type, 0)) {      if (variable_get(NODEVOTE_TYPE . $node->type, 0)) {
464        // Does the user has permission to vote?        // Does the user has permission to vote?
# Line 453  function _nodevote_is_votable($node) { Line 466  function _nodevote_is_votable($node) {
466          // Is the node posted by someone else?          // Is the node posted by someone else?
467          if (($node->uid != $user->uid) || (variable_get(NODEVOTE_VOTE_OWN_NODE, 0))) {          if (($node->uid != $user->uid) || (variable_get(NODEVOTE_VOTE_OWN_NODE, 0))) {
468            // Did the user already vote on this node?            // Did the user already vote on this node?
469            if ((!_nodevote_user_voted($user->uid, $node->nid)) || (variable_get(NODEVOTE_CHANGE_VOTE, 0))){          // For auth users, check if they can change the vote
470            if ((!_nodevote_user_voted($user->uid, $node->nid)) || ($user->uid && variable_get(NODEVOTE_CHANGE_VOTE, 0))){
471              $ret = TRUE;              $ret = TRUE;
472            }            }
473          }          }
474        }        }
475      }      }
   }  
476    return $ret;    return $ret;
477  }  }
478    

Legend:
Removed from v.1.31.2.2  
changed lines
  Added in v.1.31.2.3

  ViewVC Help
Powered by ViewVC 1.1.2