コード例 #1
0
 function recalculate_set($set_id)
 {
     global $wpdb, $table_prefix;
     $set = gd_get_multi_set($set_id);
     $sql = sprintf("select id, post_id from %sgdsr_multis_data where multi_id = %s", $table_prefix, $set_id);
     $posts = $wpdb->get_results($sql);
     foreach ($posts as $post) {
         GDSRDBMulti::recalculate_multi_averages($post->post_id, $set_id, "", $set);
         GDSRDBMulti::recalculate_multi_review_db($post->post_id, $post->id, $set);
     }
     $sql = sprintf("select id from %sgdsr_multis_trend where multi_id = %s", $table_prefix, $set_id);
     $ids = $wpdb->get_results($sql);
     foreach ($ids as $id) {
         GDSRDBMulti::recalculate_trend_averages($id->id, $set);
     }
 }
コード例 #2
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 . '" }';
 }
コード例 #3
0
 function vote_multi_rating($votes, $post_id, $set_id, $tpl_id)
 {
     global $userdata;
     $ip = $_SERVER["REMOTE_ADDR"];
     if ($this->o["save_user_agent"] == 1) {
         $ua = $_SERVER["HTTP_USER_AGENT"];
     } else {
         $ua = "";
     }
     $user = intval($userdata->ID);
     $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;
         }
     }
     if ($allow_vote) {
         $allow_vote = $this->check_cookie($post_id . "#" . $set_id, "multis");
     }
     if ($allow_vote) {
         $allow_vote = GDSRDBMulti::check_vote($post_id, $user, $set_id, 'multis', $ip, $this->o["logged"] != 1, $this->o["mur_allow_mixed_ip_votes"] == 1);
     }
     $rating = 0;
     $total_votes = 0;
     $json = 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);
         $this->save_cookie($post_id . "#" . $set_id, "multis");
         $rating = $summary["total"]["rating"];
         $total_votes = $summary["total"]["votes"];
         $json = $summary["json"];
     }
     include $this->plugin_path . 'code/t2/gd-star-t2-templates.php';
     $template = new gdTemplateRender($tpl_id, "MRB");
     $rt = GDSRRenderT2::render_srt($template->dep["MRT"], $rating, $set->stars, $total_votes, $post_id);
     $enc_values = "[" . join(",", $json) . "]";
     return "{ status: 'ok', values: " . $enc_values . ", rater: '" . $rt . "', average: '" . $rating . "' }";
 }
コード例 #4
0
ファイル: class.php プロジェクト: TheReaCompany/pooplog
 function comment_save($comment_id)
 {
     global $userdata;
     $user_id = is_object($userdata) ? $userdata->ID : 0;
     $user = intval($user_id);
     $ip = $_SERVER["REMOTE_ADDR"];
     if ($this->post_comment["review"] > -1) {
         $comment_data = GDSRDatabase::get_comment_data($comment_id);
         if (count($comment_data) == 0) {
             GDSRDatabase::add_empty_comment($comment_id, $this->post_comment["post_id"], $this->post_comment["review"]);
         } else {
             GDSRDatabase::save_comment_review($comment_id, $this->post_comment["review"]);
         }
     }
     $std_minimum = $this->o["int_comment_std_zero"] == 1 ? -1 : 0;
     $mur_minimum = $this->o["int_comment_mur_zero"] == 1 ? 0 : 1;
     $id = $this->post_comment["post_id"];
     if ($this->post_comment["standard_rating"] > $std_minimum) {
         $votes = $this->post_comment["standard_rating"];
         $ua = $this->o["save_user_agent"] == 1 ? $_SERVER["HTTP_USER_AGENT"] : "";
         $allow_vote = true;
         if ($this->o["cmm_integration_prevent_duplicates"] == 1) {
             $allow_vote = intval($votes) <= $this->o["stars"];
             if ($allow_vote) {
                 $allow_vote = gdsrFrontHelp::check_cookie($id);
             }
             if ($allow_vote) {
                 $allow_vote = gdsrBlgDB::check_vote($id, $user, 'article', $ip, false, false);
             }
         }
         if ($allow_vote) {
             gdsrBlgDB::save_vote($id, $user, $ip, $ua, $votes, $comment_id);
             if ($this->o["cmm_integration_prevent_duplicates"] == 1) {
                 gdsrFrontHelp::save_cookie($id);
             }
             do_action("gdsr_vote_rating_article_integrate", $id, $user, $votes);
         }
     }
     if ($this->post_comment["multi_id"] > 0 && $this->post_comment["multi_rating"] != "") {
         $set_id = $this->post_comment["multi_id"];
         $set = gd_get_multi_set($set_id);
         $values = explode("X", $this->post_comment["multi_rating"]);
         $allow_vote = true;
         foreach ($values as $v) {
             if ($v > $set->stars || $v < $mur_minimum) {
                 $allow_vote = false;
                 break;
             }
         }
         if ($this->o["cmm_integration_prevent_duplicates"] == 1) {
             if ($allow_vote) {
                 $allow_vote = gdsrFrontHelp::check_cookie($id . "#" . $set_id, "multis");
             }
             if ($allow_vote) {
                 $allow_vote = GDSRDBMulti::check_vote($id, $user, $set_id, 'multis', $ip, false, false);
             }
         }
         if ($allow_vote) {
             $ip = $_SERVER["REMOTE_ADDR"];
             $ua = $this->o["save_user_agent"] == 1 ? $_SERVER["HTTP_USER_AGENT"] : "";
             $data = GDSRDatabase::get_post_data($id);
             GDSRDBMulti::save_vote($id, $set->multi_id, $user, $ip, $ua, $values, $data, $comment_id);
             GDSRDBMulti::recalculate_multi_averages($id, $set->multi_id, "", $set, true);
             if ($this->o["cmm_integration_prevent_duplicates"] == 1) {
                 gdsrFrontHelp::save_cookie($id . "#" . $set_id, "multis");
             }
             do_action("gdsr_vote_rating_multis_integrate", $id, $user, $set_id, $values);
         }
     }
 }
コード例 #5
0
 function delete_by_comment($comment_id)
 {
     global $wpdb, $table_prefix;
     $sql = sprintf("select * from %sgdsr_votes_log where vote_type = 'multis' and comment_id = %s", $table_prefix, $comment_id);
     $row = $wpdb->get_row($sql);
     if (count($row) > 0) {
         $votes = unserialize($row->object);
         $sql = sprintf("select id from %sgdsr_multis_data where post_id = %s and multi_id = %s", $table_prefix, $row->id, $row->multi_id);
         $id = $wpdb->get_var($sql);
         if ($row->user_id == 0) {
             $delstring = "visitor_votes = visitor_votes - %s, visitor_voters = visitor_voters - 1";
         } else {
             $delstring = "user_votes = user_votes - %s, user_voters = user_voters - 1";
         }
         $i = 0;
         foreach ($votes as $vote) {
             $sql_set = sprintf($delstring, $vote);
             $sql = sprintf("update %sgdsr_multis_values set %s where source = 'dta' and id = %s and item_id = %s", $table_prefix, $sql_set, $id, $i);
             $wpdb->query($sql);
             $i++;
         }
         $set = gd_get_multi_set($row->multi_id);
         GDSRDBMulti::recalculate_multi_averages($row->id, $row->multi_id, "", $set, true);
         $sql = sprintf("delete from %sgdsr_votes_log where record_id = %s", $table_prefix, $row->record_id);
         $wpdb->query($sql);
     }
 }