userid; else return 0; } $result = mysql_query("SELECT * FROM appVotes WHERE appId = $appId AND userId = $userId"); return mysql_num_rows($result); } /* * total votes by userId */ function vote_count_user_total($userId = null) { global $current; if(!$userId) { if(loggedin()) $userId = $current->userid; else return 0; } $result = mysql_query("SELECT * FROM appVotes WHERE userId = $userId"); return mysql_num_rows($result); } /* * total votes for appId */ function vote_count_app_total($appId) { $result = mysql_query("SELECT * FROM appVotes WHERE appId = $appId"); return mysql_num_rows($result); } /* * add a vote for appId */ function vote_add($appId, $slot, $userId = null) { global $current; global $MAX_VOTES; if(!$userId) { if(loggedin()) $userId = $current->userid; else return; } //if(vote_count_user_total($userId) >= $MAX_VOTES) // return; vote_remove($appId, $slot, $userId); mysql_query("INSERT INTO appVotes VALUES (null, null, $appId, $userId, $slot)"); } /* * remove vote for appId */ function vote_remove($appId, $slot, $userId = null) { global $current; if(!$userId) { if(loggedin()) $userId = $current->userid; else return; } mysql_query("DELETE FROM appVotes WHERE appId = $appId AND userId = $userId AND slot = $slot"); } function vote_get_user_votes($userId = null) { global $current; if(!$userId) { if(loggedin()) $userId = $current->userid; if(!$userId) return array(); } $result = mysql_query("SELECT * FROM appVotes WHERE userId = $userId"); if(!$result) return array(); $obs = array(); while($ob = mysql_fetch_object($result)) $obs[$ob->slot] = $ob; return $obs; } function vote_menu() { global $appId; global $apidb_root; $m = new htmlmenu("Votes","updatevote.php"); $votes = vote_get_user_votes(); if($votes[1]) { $str = " App #".$votes[1]->appId.""; $m->add(" ".$str); } else $m->add(" No App Selected"); if($votes[2]) { $str = " App #".$votes[2]->appId.""; $m->add(" ".$str); } else $m->add(" No App Selected"); if($votes[3]) { $str = " App #".$votes[3]->appId.""; $m->add(" ".$str); } else $m->add(" No App Selected"); $m->addmisc(" "); $m->add(""); $m->add(""); $m->addmisc(""); $m->add("View Results", $apidb_root."votestats.php"); $m->add("Voting Help", $apidb_root."help/?topic=voting"); $m->done(1); } function dump($arr) { while(list($key, $val) = each($arr)) { echo "$key => $val
\n"; } } function vote_update($vars) { global $current; //FIXME this doesn't work since msgs only work when logged in if(!$current) { addmsg("You must be logged in to vote", "red"); return; } dump($vars); echo "
\n"; if($vars["vote"]) { addmsg("Registered vote for App #".$vars["appId"], "green"); vote_add($vars["appId"], $vars["slot"]); } else if($vars["clear"]) { addmsg("Removed vote for App #".$vars["appId"], "green"); vote_remove($vars["appId"], $vars["slot"]); } } ?>