"; return $str; } function rateradio($table, $id) { $table = preg_replace('/\W/', '', $table); $id = intval($id); $str = " 1 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}'"); } } ?>