diff --git a/rate_class.php b/rate_class.php deleted file mode 100644 index e000cd1ee..000000000 --- a/rate_class.php +++ /dev/null @@ -1,677 +0,0 @@ -multi = true; - } - - list($votes,$score,$uvoted) = $this->getrating($table, $id); - - // return "Table=".$table." itmeId=".$id." Votes=".$votes." score=".$score; - - if(is_string($options)) - { - parse_str($options,$options); - } - - $label = varset($options['label'],RATELAN_5); - - if(!empty($options['readonly'])) - { - $readonly = '1'; - } - else - { - $readonly = $this->checkrated($table, $id) ? '1' : '0'; - } - - $hintArray = array(RATELAN_POOR,RATELAN_FAIR,RATELAN_GOOD,RATELAN_VERYGOOD,RATELAN_EXCELLENT); - - $datahint = implode(",",$hintArray); - $path = e_JS_ABS."rate/img/"; - - $score = ($score / 2); - // var_dump($readonly); - - - if(!$votes) - { - $voteDiz = RATELAN_4; - } - else - { - $voteDiz = ($votes == 1) ? RATELAN_0 : RATELAN_1; - } - - if($readonly == '1') - { - $label = RATELAN_3; - } - - if(!USERID) - { - $label = RATELAN_6; // Please login to vote. - $readonly = '1'; - } - - $template = vartrue($options['template'], " STATUS |RATE|VOTES"); - - $identifier = $table.'-'.$id.'-'.vartrue($options['uniqueId'],'rate'); - - $TEMPLATE['STATUS'] = " "; - $TEMPLATE['RATE'] = "
"; - $TEMPLATE['VOTES'] = "
".$this->renderVotes($votes,$score)."
"; - - $tmp = explode("|",$template); - - $text = ""; - foreach($tmp as $k) - { - if (!empty($TEMPLATE[$k])) - { - $text .= $TEMPLATE[$k]; - } - } - - return $text; - } - - - - - function renderVotes($votes,$score) // TODO use template? - { - if(!$votes) - { - $voteDiz = RATELAN_4; - } - else - { - $voteDiz = ($votes == 1) ? RATELAN_0 : RATELAN_1; - } - - return "{$score}/5 : {$votes} ".$voteDiz; - } - - - - // Legacy Rate Selector. - function rateselect($text, $table, $id, $mode=FALSE) - { - //$mode : if mode is set, no urljump will be used (used in combined comments+rating system) - - $table = preg_replace('/\W/', '', $table); - $id = intval($id); - - // return $this->render($text,$table,$id,$mode); - - - // $self = $_SERVER['PHP_SELF']; - // if ($_SERVER['QUERY_STRING']) { - // $self .= "?".$_SERVER['QUERY_STRING']; - // } - $self = e_REQUEST_URI; - - $jump = ""; - $url = ""; - if($mode==FALSE){ - $jump = "onchange='urljump(this.options[selectedIndex].value)'"; - $url = e_HTTP."rate.php?"; - } - - $str = $text." - "; - 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); - - if($id == 0) - { - return RATELAN_10; - } - - if($this->multi === true) - { - if(isset($this->ratings[$table])) - { - if(!empty($this->ratings[$table][$id])) - { - return $this->ratings[$table][$id]; - } - - return array(0,0,0); - - } - - $tmp = e107::getDb('rate')->retrieve("rate", "*", "rate_table = '{$table}' ",true); - $val = array(); - foreach($tmp as $row) - { - $rid = $row['rate_itemid']; - $val[$rid] = $this->processRow($row,$userid); - } - - $this->ratings[$table] = $val; - - if(!empty($this->ratings[$table][$id])) - { - return $this->ratings[$table][$id]; - } - - return array(0,0,0); - - } - - // $sep = chr(1); - - $sql = new db; - if (!$sql->select("rate", "*", "rate_table = '{$table}' AND rate_itemid = '{$id}' ")) - { - return false; - } - else - { - $rowgr = $sql->fetch(); - - return $this->processRow($rowgr,$userid); - } - } - - - /** - * @param array $rowgr - * @param bool $userid - * @return array - */ - private function processRow($rowgr,$userid = false) - { - $sep = chr(1); - - if($userid == true) - { - $rating = array(); - - $rateusers = explode(".", $rowgr['rate_voters']); - for($i = 0; $i < count($rateusers); $i++) - { - if(strpos($rateusers[$i], $sep)) - { - $rateuserinfo[$i] = explode($sep, $rateusers[$i]); - - if($userid == $rateuserinfo[$i][0]) - { - $rating[0] = 0; //number of votes, not relevant in users rating - $rating[1] = $rateuserinfo[$i][1]; //the rating by this user - $rating[2] = 0; //no remainder is present, because we have a single users rating - break; - } - } - else - { - $rating[0] = 0; //number of votes, not relevant in users rating - $rating[1] = 0; //the rating by this user - $rating[2] = 0; //no remainder is present, because we have a single users rating - } - } - } - else - { - $rating[0] = $rowgr['rate_votes']; // $rating[0] == number of votes - $tmp = $rowgr['rate_rating'] / $rowgr['rate_votes']; - $tmp = (strpos($tmp, ",")) ? explode(",", $tmp) : explode(".", $tmp); - $rating[1] = $tmp[0]; - - if(isset($tmp[1])) - { - $rating[2] = substr($tmp[1], 0, 1); - } - else - { - $rating[2] = "0"; - } - } - - return $rating; - } - - - - - function submitVote($table,$itemid,$rate) - { - $array = $table."^".$itemid."^^".$rate; - return $this->enterrating($array,true); - - } - - /** - * @param $table: table without prefix that the like is for - * @param $itemid: item id within that table for the item to be liked - * @param $curval: optional array of current values for 'up' and 'down' - * @param $perc: optional percentage mode. Displays percentages instead of totals. - */ - function renderLike($table,$itemid,$curVal=false,$perc=false) - { - $tp = e107::getParser(); - - $id = "rate-".$table."-".$itemid; // "-up or -down is appended to the ID by jquery as both value will need updating. - - if($curVal == false) - { - $curVal = $this->getLikes($table,$itemid); - } - - $p = ($perc) ? "%" : ""; - - $upImg = "";//like - $upDown = "";//dislike - - if(deftrue('BOOTSTRAP')) - { - $upImg = $tp->toGlyph('icon-thumbs-up',false); // ""; - $upDown = $tp->toGlyph('icon-thumbs-down',false); // ""; - } - - $text = "".intval($curVal['up'])."{$p} - {$upImg} - - ".intval($curVal['down'])."{$p} - {$upDown}"; - return $text; - } - - - - protected function getLikes($table,$itemid,$perc=false) - { - $sql = e107::getDb(); - if($sql->db_Select("rate","*","rate_table = '{$table}' AND rate_itemid = '{$itemid}' LIMIT 1")) - { - $row = $sql->db_Fetch(); - if($perc == true) // Percentage Mode - { - $up = round(($row['rate_up'] / $row['rate_votes']) * 100) . "%"; - $down = round(($row['rate_down'] / $row['rate_votes']) * 100) . "%"; - return array('up'=>$up,'down'=>$down,'total'=> $row['rate_votes']); - } - else // Counts mode. - { - $up = $row['rate_up']; - $down = $row['rate_down']; - return array('up'=>$up,'down'=>$down,'total'=>$row['rate_votes']); - } - } - - return ($perc == false) ? array('up'=>0,'down'=>0,'total'=>0) : array('up'=>'0%','down'=>'0%','total'=>'0%'); - } - - - function submitLike($table,$itemid,$type,$perc=false) - { - $sql = e107::getDb(); - - if($sql->db_Select("rate","*","rate_table = '{$table}' AND rate_itemid = '{$itemid}' LIMIT 1")) - { - $row = $sql->db_Fetch(); - - if(preg_match("/\.". USERID."\./",$row['rate_voters'])) // already voted. - { - return false; - } - - $newvoters = $row['rate_voters'].".".USERID."."; - $totalVotes = $row['rate_votes'] + 1; - $totalDown = $row['rate_down'] + (($type == 'down') ? 1 : 0); - $totalUp = $row['rate_up'] + (($type == 'up') ? 1 : 0); - - $qry = ($type == 'up') ? "rate_up = {$totalUp} " : "rate_down = {$totalDown}"; - $qry .= ", rate_voters = '{$newvoters}', rate_votes = {$totalVotes} "; - $qry .= " WHERE rate_table = '{$table}' AND rate_itemid = '{$itemid}'"; - - if($sql->db_Update("rate",$qry)) - { - if($perc == true) // Percentage Mode - { - $up = round(($totalUp /$totalVotes) * 100) . "%"; - $down = round(($totalDown /$totalVotes) * 100) . "%"; - } - else // Counts mode. - { - $up = $totalUp; - $down = $totalDown; - } - - $edata = array( - 'like_pid' => $row['rate_id'], - 'like_table' => $table, - 'like_item_id' => $itemid, - 'like_author_id' => USERID, - 'like_author_name' => USERNAME, - 'like_up_count' => $totalUp, - 'like_down_count' => $totalDown, - 'like_totalvotes' => $totalVotes, - 'like_type' => $type - ); - e107::getEvent()->trigger('user_like_sent', $edata); - - return $up."|".$down; - } - } - else - { - $insert = array( - // "rate_id" => 0, // let it increment - "rate_table" => $table, - "rate_itemid" => $itemid, - "rate_rating" => 0, - "rate_votes" => 1, - "rate_voters" => ".".USERID.".", - "rate_up" => ($type == 'up') ? 1 : 0, - "rate_down" => ($type == 'down') ? 1 : 0 - ); - - if($sql->db_Insert("rate", $insert)) - { - $row = $sql->db_Fetch(); - $edata = array( - 'like_pid' => $row['rate_id'], - 'like_table' => $table, - 'like_item_id' => $itemid, - 'like_author_id' => USERID, - 'like_author_name' => USERNAME, - 'like_old_up' => $row['rate_up'], - 'like_old_down' => $row['rate_down'], - 'like_totalvotes' => 1 - ); - e107::getEvent()->trigger('user_like_sent', $edata); - - if($perc == true) // Percentage Mode - { - return ($type == 'up') ? "100%|0%" : "0%|100%"; - } - else - { - return ($type == 'up') ? "1|0" : "0|1"; - } - } - } - } - - - function enterrating($rateindex,$ajax = false) - { - - $sql = e107::getDb(); - $tp = e107::getParser(); - - $qs = explode("^", $rateindex); - - if (!$qs[0] || USER == FALSE || $qs[3] > 10 || $qs[3] < 1) - { - - if($ajax == false) - { - header("location:".e_BASE."index.php"); - exit; - } - else - { - return LAN_ERROR.": ".print_a($qs,true); - } - - } - - $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); // problematic - invisible in phpmyadmin. - $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."."; - $new_votes = $row['rate_votes'] + 1; - $new_rating = $row['rate_rating'] + $rate; - - $stat = ($new_rating /$new_votes)/2; - $statR = round($stat,1); - - if(strpos($row['rate_voters'], ".".$voter.".") == true || strpos($row['rate_voters'], ".".USERID.".") == true) - { - - return RATELAN_9."|".$this->renderVotes($new_votes,$statR); // " newvotes = ".($statR). " =".$new_votes; - } - - - if($sql->db_Update("rate", "rate_votes= ".$new_votes.", rate_rating='{$new_rating}', rate_voters='{$rate_voters}' WHERE rate_id='{$row['rate_id']}' ")) - { - $edata = array( - 'rate_pid' => $row['rate_id'], - 'rate_table' => $table, - 'rate_item_id' => $itemid, - 'rate_author_id' => USERID, - 'rate_author_name' => USERNAME, - 'rate_old_votes' => $row['rate_votes'], - 'rate_new_votes' => $new_votes, - 'rate_old_rating' => $row['rate_rating'], - 'rate_new_rating' => $new_rating - ); - e107::getEvent()->trigger('user_rate_sent', $edata); - return RATELAN_3."|".$this->renderVotes($new_votes,$statR); // Thank you for your vote. - } - else - { - return LAN_ERROR; - } - - } - else - { - - $insert = array( - // "rate_id" => 0, - "rate_table" => $table, - "rate_itemid" => $itemid, - "rate_rating" => $rate, - "rate_votes" => 1, - "rate_voters" => ".".$voter.".", - "rate_up" => 0, - "rate_down" => 0 - ); - - - if($sql->db_Insert("rate", $insert)) - // if($sql->db_Insert("rate", " 0, '$table', '$itemid', '$rate', '1', '.".$voter.".' ")) - { - $row = $sql->db_Fetch(); - $edata = array( - 'rate_pid' => $row['rate_id'], - 'rate_table' => $table, - 'rate_item_id' => $itemid, - 'rate_author_id' => USERID, - 'rate_author_name' => USERNAME, - 'rate_old_votes' => 0, - 'rate_new_votes' => 1, - 'rate_old_rating' => null, - 'rate_new_rating' => $rate - ); - e107::getEvent()->trigger('user_rate_sent', $edata); - - $stat = ($rate /1)/2; - $statR = round($stat,1); - return RATELAN_3."|".$this->renderVotes(1,$statR); ; // Thank you for your vote. - } - elseif(getperms('0')) - { - return RATELAN_11; - } - } - - } - - - - - - - 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}'"); - } -}