";
return $str;
}
function rateradio($table, $id) {
$table = preg_replace('/\W/', '', $table);
$id = intval($id);
$str = "
1
2
3
4
5
6
7
8
9
10";
return $str;
}
function checkrated($table, $id) {
$table = preg_replace('/\W/', '', $table);
$id = intval($id);
$sql = new db;
if (!$sql->db_Select("rate", "*", "rate_table = '{$table}' AND rate_itemid = '{$id}' ")) {
return FALSE;
} else {
$row = $sql->db_Fetch();
if (preg_match("/\.".USERID."\./", $row['rate_voters'])) {
return TRUE;
//added option to split an individual users rating
}else if (preg_match("/\.".USERID.chr(1)."([0-9]{1,2})\./", $row['rate_voters'])) {
return TRUE;
} else {
return FALSE;
}
}
}
function getrating($table, $id, $userid=FALSE) {
//userid : boolean, get rating for a single user, or get general total rating of the item
$table = preg_replace('/\W/', '', $table);
$id = intval($id);
$sql = new db;
if (!$sql->db_Select("rate", "*", "rate_table = '{$table}' AND rate_itemid = '{$id}' ")) {
return FALSE;
} else {
$rowgr = $sql->db_Fetch();
if($userid==TRUE){
$rating = "";
$rateusers = explode(".", $rowgr['rate_voters']);
for($i=0;$i 10 || $qs[3] < 1) {
header("location:".e_BASE."index.php");
exit;
}
$table = $tp -> toDB($qs[0], true);
$itemid = intval($qs[1]);
$rate = intval($qs[3]);
//rating is now stored as userid-rating (to retain individual users rating)
//$sep = "^";
$sep = chr(1);
$voter = USERID.$sep.intval($qs[3]);
if ($sql->db_Select("rate", "*", "rate_table='{$table}' AND rate_itemid='{$itemid}' ")) {
$row = $sql->db_Fetch();
$rate_voters = $row['rate_voters'].".".$voter.".";
$sql->db_Update("rate", "rate_votes=rate_votes+1, rate_rating=rate_rating+'{$rate}', rate_voters='{$rate_voters}' WHERE rate_id='{$row['rate_id']}' ");
} else {
$sql->db_Insert("rate", " 0, '$table', '$itemid', '$rate', '1', '.".$voter.".' ");
}
}
function composerating($table, $id, $enter=TRUE, $userid=FALSE, $nojump=FALSE){
//enter : boolean to show (rateselect box + textual info) or not
//userid : used to calculate a users given rating
//nojump : boolean, if present no urljump will be used (needed in comment_rating system)
$rate = "";
if($ratearray = $this -> getrating($table, $id, $userid)){
if($ratearray[1] > 0){
for($c=1; $c<= $ratearray[1]; $c++){
$rate .= "
";
}
if($ratearray[1] < 10){
for($c=9; $c>=$ratearray[1]; $c--){
$rate .= "
";
}
}
$rate .= "
";
if($ratearray[2] == ""){ $ratearray[2] = 0; }
$rate .= " ".$ratearray[1].".".$ratearray[2];
if(!$userid){
$rate .= " - ".$ratearray[0]." ";
$rate .= ($ratearray[0] == 1 ? RATELAN_0 : RATELAN_1);
}
}
}else{
if($enter===TRUE){
$rate .= RATELAN_4;
}
}
if($enter===TRUE){
if(!isset($ratearray[1]) || $ratearray[1] > 0){
$rate .= " - ";
}
if(!$this -> checkrated($table, $id) && USER){
$rate .= $this -> rateselect(RATELAN_2, $table, $id, $nojump);
}else if(USER){
$rate .= RATELAN_3;
}
}
return $rate;
}
function delete_ratings($table, $id)
{
global $tp, $sql;
$table = $tp->toDB($table, true);
$id = intval($id);
return $sql -> db_Delete("rate", "rate_itemid='{$id}' AND rate_table='{$table}'");
}
}
?>