Esempio n. 1
0
/**
 * check witch rating plugin exist in wp and rate post
 * @param int $postId
 * @param int $rating
 * @param int $user_id
 * @return bool
 */
function wiziapp_do_actual_rating($postId, $rating = 0, $user_id = 0)
{
    $GLOBALS['WiziappLog']->write('info', "Got a rating request with {$postId}::{$rating}::{$user_id}", "wiziapp_do_rating");
    $postId = intval($postId);
    $rating = intval($rating);
    if (filter_var($user_id, FILTER_VALIDATE_IP)) {
        $ip = $user_id;
        $user_id = 0;
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
        $user_id = intval($user_id);
    }
    if ($rating < 1 && $rating > 5) {
        return false;
    }
    //polldaddy rating
    $id = get_option('pd-rating-posts-id');
    if (function_exists('polldaddy_show_rating_comments') && $id > 0) {
        $url = 'http://polldaddy.com/ratings/rate.php?';
        $url_query = array();
        $url_query['cmd'] = 'get';
        $url_query['id'] = get_option('pd-rating-posts-id');
        $url_query['uid'] = 'wp-post-' . $postId;
        $url_query['item_id'] = '_post_' . $postId;
        $link = $url . http_build_query($url_query);
        $matches = array();
        $get_content = wiziapp_general_http_request('', $link, 'GET');
        $get_content = $get_content['body'];
        preg_match("/\\.token='([a-z0-9]*)/", $get_content, $matches);
        $url_query['token'] = $matches[1];
        preg_match("/\\.avg_rating = ([a-z0-9]*)/", $get_content, $matches);
        $url_query['avg'] = $matches[1];
        preg_match("/\\.votes = ([a-z0-9]*)/", $get_content, $matches);
        $url_query['votes'] = $matches[1];
        $post = get_post($postId);
        $url_query['title'] = str_replace('&amp;', '&', $post->post_title);
        $url_query['permalink'] = $post->guid;
        $url_query['type'] = 'stars';
        $url_query['cmd'] = 'rate';
        $url_query['r'] = $rating;
        $link = $url . http_build_query($url_query);
        wiziapp_general_http_request('', $link, 'GET');
        return true;
    }
    //GD Star rating
    global $gdsr;
    if (is_object($gdsr) && get_class($gdsr) == 'GDStarRating') {
        $ua = $_SERVER["HTTP_USER_AGENT"];
        gdsrBlgDB::save_vote($postId, $user_id, $ip, $ua, $rating);
        gdsrFrontHelp::save_cookie($postId);
        do_action("gdsr_vote_rating_article", $postId, $user_id, $rating);
        return true;
    }
    //WP-PostRatings
    if (function_exists('process_ratings') && $postId > 0 && $user_id > 0) {
        $_GET['rate'] = $rating;
        $_GET['pid'] = $postId;
        global $user_ID;
        $user_ID = $user_id;
        process_ratings();
        return true;
    }
    return false;
}
Esempio n. 2
0
 function save_vote_comment($id, $user, $ip, $ua, $vote)
 {
     global $wpdb, $table_prefix;
     $ua = str_replace("'", "''", $ua);
     $ua = substr($ua, 0, 250);
     $post = $wpdb->get_row("select comment_post_ID from {$wpdb->comments} where comment_ID = " . $id);
     $post_id = $post->comment_post_ID;
     $sql = sprintf("SELECT * FROM %sgdsr_data_article WHERE post_id = %s", $table_prefix, $post_id);
     $post_data = $wpdb->get_row($sql);
     if ($post_data->moderate_comments == "" || $post_data->moderate_comments == "N" || $post_data->moderate_comments == "V" && $user > 0 || $post_data->moderate_comments == "U" && $user == 0) {
         gdsrBlgDB::add_vote_comment($id, $user, $ip, $ua, $vote);
     } else {
         $modsql = sprintf("INSERT INTO %sgdsr_moderate (id, vote_type, user_id, vote, voted, ip, user_agent) VALUES (%s, 'comment', %s, %s, '%s', '%s', '%s')", $table_prefix, $id, $user, $vote, str_replace("'", "''", current_time('mysql')), $ip, $ua);
         $wpdb->query($modsql);
     }
 }
 function render_multi_rating_actual($settings)
 {
     if ($this->g->is_bot && $this->g->o["bot_message"] != "normal") {
         return GDSRRender::render_locked_response($this->g->o["bot_message"]);
     }
     $rd_post_id = intval($settings[1]);
     $rd_is_page = intval($settings[2]);
     $post_author = intval($settings[3]);
     $post_date = intval($settings[4]);
     $override["id"] = intval($settings[11]);
     $override["tpl"] = intval($settings[5]);
     $override["read_only"] = intval($settings[6]);
     $override["size"] = intval($settings[7]);
     $override["style"] = $this->g->g->stars[$settings[8]]->folder;
     $override["style_ie6"] = $this->g->g->stars[$settings[9]]->folder;
     $rd_user_id = intval($settings[10]);
     $override["average_size"] = intval($settings[12]);
     $override["average_stars"] = $this->g->g->stars[$settings[13]]->folder;
     $override["average_stars_ie6"] = $this->g->g->stars[$settings[14]]->folder;
     $set = gd_get_multi_set($override["id"]);
     if ($set == null) {
         return "";
     }
     $rd_unit_width = $override["size"];
     $rd_unit_style = $this->g->is_ie6 ? $override["style_ie6"] : $override["style"];
     $rd_unit_width_avg = $override["average_size"];
     $rd_unit_style_avg = $this->g->is_ie6 ? $override["average_stars_ie6"] : $override["average_stars"];
     $dbg_allow = "F";
     $already_voted = false;
     $allow_vote = $override["read_only"] == 0;
     $allow_vote = apply_filters("gdsr_allow_vote_stars_article", $allow_vote, $rd_post_id, $override["id"]);
     if ($this->g->override_readonly_multis) {
         $allow_vote = false;
         $dbg_allow = "RTO";
     }
     if ($this->g->is_ban && $this->g->o["ip_filtering"] == 1) {
         if ($this->g->o["ip_filtering_restrictive"] == 1) {
             return "";
         } else {
             $allow_vote = false;
         }
         $dbg_allow = "B";
     }
     if ($override["read_only"] == 1) {
         $dbg_allow = "RO";
     }
     $remaining = 0;
     $deadline = "";
     $post_data = wp_gdget_post($rd_post_id);
     if (!is_object($post_data)) {
         GDSRDatabase::add_default_vote($rd_post_id, $rd_is_page);
         $post_data = wp_gdget_post($rd_post_id);
         $this->g->c[$rd_post_id] = 1;
     }
     $rules_articles = $post_data->rules_articles != "I" ? $post_data->rules_articles : $this->g->get_post_rule_value($rd_post_id, "rules_articles", "default_voterules_articles");
     if ($rules_articles == "H") {
         return "";
     }
     if ($allow_vote) {
         if ($this->g->o["author_vote"] == 1 && $rd_user_id == $post_author) {
             $allow_vote = false;
             $dbg_allow = "A";
         }
     }
     if ($allow_vote) {
         if ($rules_articles == "" || $rules_articles == "A" || $rules_articles == "U" && $rd_user_id > 0 || $rules_articles == "V" && $rd_user_id == 0) {
             $allow_vote = true;
         } else {
             $allow_vote = false;
             $dbg_allow = "R_" . $rules_articles;
         }
     }
     $remaining = 0;
     $deadline = '';
     $expiry_type = 'N';
     if ($allow_vote && ($post_data->expiry_type == 'D' || $post_data->expiry_type == 'T' || $post_data->expiry_type == 'I')) {
         $expiry_type = $post_data->expiry_type != 'I' ? $post_data->expiry_type : $this->g->get_post_rule_value($rd_post_id, "expiry_type", "default_timer_type");
         $expiry_value = $post_data->expiry_type != 'I' ? $post_data->expiry_value : $this->g->get_post_rule_value($rd_post_id, "expiry_value", "default_timer_value");
         switch ($expiry_type) {
             case "D":
                 $remaining = gdsrFrontHelp::expiration_date($expiry_value);
                 $deadline = $expiry_value;
                 break;
             case "T":
                 $remaining = gdsrFrontHelp::expiration_countdown($post_date, $expiry_value);
                 $deadline = gdsrFrontHelp::calculate_deadline($remaining);
                 break;
         }
         if ($remaining < 1) {
             gdsrBlgDB::lock_post($rd_post_id);
             $allow_vote = false;
             $dbg_allow = "T";
         }
     }
     $already_voted = !GDSRDBMulti::check_vote($rd_post_id, $rd_user_id, $set->multi_id, 'multis', $_SERVER["REMOTE_ADDR"], $this->g->o["logged"] != 1, $this->g->o["mur_allow_mixed_ip_votes"] == 1);
     if ($allow_vote) {
         $allow_vote = !$already_voted;
         if (!$allow_vote) {
             $dbg_allow = "D";
         }
     }
     if ($allow_vote) {
         $allow_vote = gdsrFrontHelp::check_cookie($rd_post_id . "#" . $set->multi_id, "multis");
         if (!$allow_vote) {
             $dbg_allow = "C";
         }
     }
     $multi_record_id = GDSRDBMulti::get_vote($rd_post_id, $set->multi_id, count($set->object));
     $multi_data = GDSRDBMulti::get_values($multi_record_id);
     $votes = array();
     foreach ($multi_data as $md) {
         $single_vote = array();
         $single_vote["votes"] = 0;
         $single_vote["score"] = 0;
         if ($rules_articles == "A" || $rules_articles == "N") {
             $single_vote["votes"] = $md->user_voters + $md->visitor_voters;
             $single_vote["score"] = $md->user_votes + $md->visitor_votes;
         } else {
             if ($rules_articles == "V") {
                 $single_vote["votes"] = $md->visitor_voters;
                 $single_vote["score"] = $md->visitor_votes;
             } else {
                 $single_vote["votes"] = $md->user_voters;
                 $single_vote["score"] = $md->user_votes;
             }
         }
         $rating = $single_vote["votes"] > 0 ? $single_vote["score"] / $single_vote["votes"] : 0;
         if ($rating > $set->stars) {
             $rating = $set->stars;
         }
         $single_vote["rating"] = @number_format($rating, 1);
         $votes[] = $single_vote;
     }
     $debug = $rd_user_id == 0 ? "V" : "U";
     $debug .= $rd_user_id == $post_author ? "A" : "N";
     $debug .= ":" . $dbg_allow . " [" . STARRATING_VERSION . "]";
     $tags_css = array("MUR_CSS_BUTTON" => $this->g->o["mur_class_button"], "MUR_CSS_BLOCK" => $this->g->o["mur_class_block"], "MUR_CSS_HEADER" => $this->g->o["mur_class_header"], "MUR_CSS_STARS" => $this->g->o["mur_class_stars"], "MUR_CSS_TEXT" => $this->g->o["mur_class_text"]);
     $mur_button = $this->g->o["mur_button_active"] == 1;
     if (!$allow_vote) {
         $mur_button = false;
     }
     $template_id = $override["tpl"];
     return GDSRRenderT2::render_mrb($template_id, array("already_voted" => $already_voted, "style" => $rd_unit_style, "allow_vote" => $allow_vote, "votes" => $votes, "post_id" => $rd_post_id, "set" => $set, "height" => $rd_unit_width, "header_text" => $this->g->o["mur_header_text"], "tags_css" => $tags_css, "avg_style" => $rd_unit_style_avg, "avg_size" => $rd_unit_width_avg, "star_factor" => 1, "time_restirctions" => $expiry_type, "time_remaining" => $remaining, "time_date" => $deadline, "button_active" => $mur_button, "button_text" => $this->g->o["mur_button_text"], "debug" => $debug, "wait_msg" => $this->loader_multis));
 }
Esempio n. 4
0
 function vote_comment($votes, $id, $tpl_id, $unit_width)
 {
     global $userdata;
     $user = is_object($userdata) ? $userdata->ID : 0;
     $ip = $_SERVER["REMOTE_ADDR"];
     if ($this->g->o["save_user_agent"] == 1) {
         $ua = $_SERVER["HTTP_USER_AGENT"];
     } else {
         $ua = "";
     }
     $vote_value = $votes;
     wp_gdsr_dump("VOTE_CMM", "[CMM: " . $id . "] --" . $votes . "-- [" . $user . "] " . $unit_width . "px");
     $allow_vote = intval($votes) <= $this->g->o["cmm_stars"] && intval($votes) > 0;
     if ($allow_vote) {
         $allow_vote = gdsrFrontHelp::check_cookie($id, 'comment');
     }
     if ($allow_vote) {
         $allow_vote = gdsrBlgDB::check_vote($id, $user, 'comment', $ip, $this->g->o["cmm_logged"] != 1, $this->g->o["cmm_allow_mixed_ip_votes"] == 1);
     }
     if ($allow_vote) {
         gdsrBlgDB::save_vote_comment($id, $user, $ip, $ua, $votes);
         gdsrFrontHelp::save_cookie($id, 'comment');
         do_action("gdsr_vote_rating_comment", $id, $user, $votes);
     }
     $data = GDSRDatabase::get_comment_data($id);
     $post_data = GDSRDatabase::get_post_data($data->post_id);
     $unit_count = $this->g->o["cmm_stars"];
     $votes = $score = 0;
     if ($post_data->rules_comments == "A" || $post_data->rules_comments == "N") {
         $votes = $data->user_voters + $data->visitor_voters;
         $score = $data->user_votes + $data->visitor_votes;
     } else {
         if ($post_data->rules_comments == "V") {
             $votes = $data->visitor_voters;
             $score = $data->visitor_votes;
         } else {
             $votes = $data->user_voters;
             $score = $data->user_votes;
         }
     }
     if ($votes > 0) {
         $rating2 = $score / $votes;
     } else {
         $rating2 = 0;
     }
     $rating1 = @number_format($rating2, 1);
     $rating_width = number_format($rating2 * $unit_width, 0);
     include STARRATING_PATH . 'code/t2/templates.php';
     $template = new gdTemplateRender($tpl_id, "CRB");
     $rt = GDSRRenderT2::render_crt($template->dep["CRT"], array("rating" => $rating1, "unit_count" => $unit_count, "votes" => $votes, "vote_value" => $vote_value));
     $rating_width = apply_filters("gdsr_vote_rating_comment_return", $rating_width, $unit_width, $rating1, $vote_value);
     return '{ "status": "ok", "value": "' . $rating_width . '", "rater": "' . str_replace('"', '\\"', $rt) . '" }';
 }
Esempio n. 5
0
 function display_article($content)
 {
     if (is_admin() || $this->check_backtrace_access()) {
         return $content;
     }
     global $post, $userdata;
     $post_id = is_object($post) ? $post->ID : 0;
     if ($post_id == 0) {
         return $content;
     }
     $user_id = is_object($userdata) ? $userdata->ID : 0;
     if (!is_feed()) {
         if (is_single() || is_page()) {
             gdsrBlgDB::add_new_view($post_id);
             $this->widget_post_id = $post_id;
         }
         // standard rating
         if (is_single() && $this->o["display_posts"] == 1 || is_page() && $this->o["display_pages"] == 1 || is_home() && $this->o["display_home"] == 1 || is_archive() && $this->o["display_archive"] == 1 || is_search() && $this->o["display_search"] == 1) {
             if ($this->o["cached_loading"] == 0) {
                 $this->cache_posts($user_id);
             }
             $rendered = $this->f->render_article($post, $userdata);
             if ($this->o["auto_display_position"] == "top" || $this->o["auto_display_position"] == "both") {
                 $content = $rendered . $content;
             }
             if ($this->o["auto_display_position"] == "bottom" || $this->o["auto_display_position"] == "both") {
                 $content = $content . $rendered;
             }
         }
         // thumbs rating
         if ($this->o["thumbs_active"] == 1) {
             if (is_single() && $this->o["thumb_display_posts"] == 1 || is_page() && $this->o["thumb_display_pages"] == 1 || is_home() && $this->o["thumb_display_home"] == 1 || is_archive() && $this->o["thumb_display_archive"] == 1 || is_search() && $this->o["thumb_display_search"] == 1) {
                 if ($this->o["cached_loading"] == 0) {
                     $this->cache_posts($user_id);
                 }
                 $rendered = $this->f->render_thumb_article($post, $userdata);
                 if ($this->o["thumb_auto_display_position"] == "top" || $this->o["thumb_auto_display_position"] == "both") {
                     $content = $rendered . $content;
                 }
                 if ($this->o["thumb_auto_display_position"] == "bottom" || $this->o["thumb_auto_display_position"] == "both") {
                     $content = $content . $rendered;
                 }
             }
         }
         // multis rating
         if ($this->o["multis_active"] && (is_single() || is_page())) {
             $this->prepare_multiset();
             if ($this->o["cached_loading"] == 0) {
                 $this->cache_posts($user_id);
             }
             $content = $this->display_multi_rating("top", $post, $userdata) . $content;
             $content = $content . $this->display_multi_rating("bottom", $post, $userdata);
         }
     }
     $rich_snippet = (is_single() || is_page()) && !is_admin() && !is_feed() ? $this->f->render_google_rich_snippet($post) : "";
     return $content . $rich_snippet;
 }
Esempio n. 6
0
 function moderation_approve($ids, $ids_array)
 {
     global $wpdb, $table_prefix;
     $sql = sprintf("select * from %s where record_id in %s", $table_prefix . "gdsr_moderate", $ids);
     $rows = $wpdb->get_results($sql);
     foreach ($rows as $row) {
         if ($row->vote_type == "article") {
             gdsrBlgDB::add_vote($row->id, $row->user_id, $row->ip, $row->user_agent, $row->vote);
         }
         if ($row->vote_type == "comment") {
             gdsrBlgDB::add_vote_comment($row->id, $row->user_id, $row->ip, $row->user_agent, $row->vote);
         }
     }
     gdsrAdmDB::moderation_delete($ids);
 }
Esempio n. 7
0
 /**
  * Detect if the IP should be banned.
  *
  * @return bool result
  */
 static function detect_ban()
 {
     $ip = $_SERVER["REMOTE_ADDR"];
     $ban = false;
     $ban = gdsrBlgDB::check_ip_single($ip);
     if (!$ban) {
         $ban = gdsrBlgDB::check_ip_range($ip);
     }
     if (!$ban) {
         $ban = gdsrBlgDB::check_ip_mask($ip);
     }
     return $ban;
 }