示例#1
0
文件: votes.php 项目: hewu/blogwp
 function vote_multis($votes, $post_id, $set_id, $tpl_id, $size)
 {
     global $userdata;
     $ip = $_SERVER["REMOTE_ADDR"];
     if ($this->g->o["save_user_agent"] == 1) {
         $ua = $_SERVER["HTTP_USER_AGENT"];
     } else {
         $ua = "";
     }
     $user = is_object($userdata) ? $userdata->ID : 0;
     $data = GDSRDatabase::get_post_data($post_id);
     $set = gd_get_multi_set($set_id);
     wp_gdsr_dump("VOTE_MUR", "[POST: " . $post_id . "|SET: " . $set_id . "] --" . $votes . "-- [" . $user . "]");
     $values = explode("X", $votes);
     $allow_vote = true;
     foreach ($values as $v) {
         if ($v > $set->stars) {
             $allow_vote = false;
             break;
         }
     }
     $vote_value = GDSRDBMulti::recalculate_multi_vote($values, $set);
     if ($allow_vote) {
         $allow_vote = gdsrFrontHelp::check_cookie($post_id . "#" . $set_id, "multis");
     }
     if ($allow_vote) {
         $allow_vote = GDSRDBMulti::check_vote($post_id, $user, $set_id, 'multis', $ip, $this->g->o["logged"] != 1, $this->g->o["mur_allow_mixed_ip_votes"] == 1);
     }
     $rating = 0;
     $total_votes = 0;
     $json = $summary = array();
     if ($allow_vote) {
         GDSRDBMulti::save_vote($post_id, $set_id, $user, $ip, $ua, $values, $data);
         $summary = GDSRDBMulti::recalculate_multi_averages($post_id, $set_id, $data->rules_articles, $set, true, $size);
         gdsrFrontHelp::save_cookie($post_id . "#" . $set_id, "multis");
         $rating = $summary["total"]["rating"];
         $total_votes = $summary["total"]["votes"];
         $json = $summary["json"];
         do_action("gdsr_vote_rating_multis", $post_id, $user, $set_id, $values, $rating);
     }
     include STARRATING_PATH . 'code/t2/templates.php';
     $template = new gdTemplateRender($tpl_id, "MRB");
     $rt = GDSRRenderT2::render_srt_voted($template->dep["MRT"], array("rating" => $rating, "unit_count" => $set->stars, "votes" => $total_votes, "id" => $post_id, "vote" => $vote_value));
     $json = apply_filters("gdsr_vote_rating_multis_return", $json, $summary, $values);
     $enc_values = "[" . join(",", $json) . "]";
     return '{ "status": "ok", "values": ' . $enc_values . ', "rater": "' . str_replace('"', '\\"', $rt) . '", "average": "' . $rating . '" }';
 }