/* max votes per user */
$MAX_VOTES = 3;
/*
* count the number of votes for appId by userId
*/
function vote_count($appId, $userId = null)
{
if(!$userId)
{
if(loggedin())
$userId = $_SESSION['current']->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)
{
if(!$userId)
{
if(loggedin())
$userId = $_SESSION['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 $MAX_VOTES;
if(!$userId)
{
if(loggedin())
$userId = $_SESSION['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)
{
if(!$userId)
{
if(loggedin())
$userId = $_SESSION['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)
{
if(!$userId)
{
if(loggedin())
$userId = $_SESSION['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)
{
//FIXME this doesn't work since msgs only work when logged in
if(!$_SESSION['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"]);
}
}
?>