コード例 #1
0
function rating_bar($id, $units = '', $static = '')
{
    $productrating = new productrating();
    $id = (int) $id;
    $units = (int) $units;
    require '_config-rating.php';
    // get the db connection info
    //set some variables
    $ip = $_SERVER['REMOTE_ADDR'];
    if (!$units) {
        $units = 10;
    }
    if (!$static) {
        $static = false;
    }
    // get votes, values, ips for the current rating bar
    $query = mysql_query("SELECT `total_votes`, `total_value`, `used_ips` FROM `{$rating_dbname}`.`{$rating_tableName}` WHERE `id` = '{$id}'") or die(" Error: " . mysql_error());
    // insert the id in the DB if it doesn't exist already
    // see: http://www.masugadesign.com/the-lab/scripts/unobtrusive-ajax-star-rating-bar/#comment-121
    if (mysql_num_rows($query) == 0) {
        $sql = "INSERT INTO `{$rating_dbname}`.`{$rating_tableName}` (`id`,`total_votes`, `total_value`, `used_ips`) VALUES ('{$id}', '0', '0', '')";
        $result = mysql_query($sql);
    }
    $numbers = mysql_fetch_assoc($query);
    if ($numbers['total_votes'] < 1) {
        $count = 0;
    } else {
        $count = $numbers['total_votes'];
    }
    // how many votes total
    $current_rating = $numbers['total_value'];
    // total number of rating added together and stored
    $tense = $count == 1 ? $productrating->traduz('vote') : $productrating->traduz('votes');
    //plural form votes/vote
    // determine whether the user has voted, so we know how to draw the ul/li
    $voted = mysql_num_rows(mysql_query("SELECT `used_ips` FROM `{$rating_dbname}`.`{$rating_tableName}` WHERE `used_ips` LIKE '%" . $ip . "%' AND `id` = '" . $id . "'"));
    // now draw the rating bar
    $rating_width = @number_format($current_rating / $count, 2) * $rating_unitwidth;
    $rating1 = @number_format($current_rating / $count, 1);
    $rating2 = @number_format($current_rating / $count, 2);
    if ($static == 'static') {
        $static_rater = array();
        $static_rater[] .= "\n" . '<div class="ratingblock"><h7>Đánh giá:</h7>';
        $static_rater[] .= '<div id="unit_long' . $id . '">';
        $static_rater[] .= '</div>';
        $static_rater[] .= '</div>' . "\n\n";
        return join("\n", $static_rater);
    } else {
        $rater = '';
        $rater .= '<div class="ratingblock">';
        $rater .= '<div id="unit_long' . $id . '"><h7>Đánh giá:</h7>';
        $rater .= '<ul id="unit_ul' . $id . '" class="unit-rating" style="width: ' . $rating_unitwidth * $units . 'px;">';
        $rater .= '<li class="current-rating" style="width: ' . $rating_width . 'px;">Currently ' . $rating2 . '/' . $units . '</li>';
        for ($ncount = 1; $ncount <= $units; $ncount++) {
            // loop from 1 to the number of units
            if (!$voted) {
                // if the user hasn't yet voted, draw the voting stars
                $rater .= '<li><a href="' . $ps_base_url . 'modules/productrating/rating/db.php?j=' . $ncount . '&amp;q=' . $id . '&amp;t=' . $ip . '&amp;c=' . $units . '" title="' . $productrating->traduz('Give your rating now') . ': ' . $ncount . ' ' . $productrating->traduz('out of') . ' ' . $units . '" class="r' . $ncount . '-unit rater" rel="nofollow">' . $ncount . '</a></li>';
            }
        }
        $ncount = 0;
        // resets the count
        $rater .= '</ul>';
        $rater .= '</div>';
        $rater .= '</div>';
        return $rater;
    }
}
コード例 #2
0
ファイル: db.php プロジェクト: srikanthash09/codetestdatld
$referer = $_SERVER['HTTP_REFERER'];
// kill the script because normal users will never see this.
if ($vote_sent > $units) {
    die('Sorry, vote appears to be invalid.');
}
//connecting to the database to get some information
$query = mysql_query("SELECT `total_votes`, `total_value`, `used_ips` FROM `{$rating_dbname}`.`{$rating_tableName}` WHERE `id` = '{$id_sent}'") or die(" Error: " . mysql_error());
$numbers = mysql_fetch_assoc($query);
$checkIP = unserialize($numbers['used_ips']);
$count = $numbers['total_votes'];
//how many votes total
$current_rating = $numbers['total_value'];
//total number of rating added together and stored
$sum = $vote_sent + $current_rating;
// add together the current vote value and the total vote value
$tense = $count == 1 ? $productrating->traduz('vote') : $productrating->traduz('votes');
$sum == 0 ? $added = 0 : ($added = $count + 1);
is_array($checkIP) ? array_push($checkIP, $ip_num) : ($checkIP = array($ip_num));
$insertip = serialize($checkIP);
//IP check when voting
$voted = mysql_num_rows(mysql_query("SELECT `used_ips` FROM `{$rating_dbname}`.`{$rating_tableName}` WHERE `used_ips` LIKE '%" . $ip . "%' AND `id` = '" . $id_sent . "'"));
if (!$voted) {
    //if the user hasn't yet voted, then vote normally...
    if ($vote_sent >= 1 && $vote_sent <= $units && $ip == $ip_num) {
        // keep votes within range
        $update = "UPDATE `{$rating_dbname}`.`{$rating_tableName}` SET `total_votes` = '" . $added . "', `total_value` = '" . $sum . "', `used_ips` = '" . $insertip . "' WHERE `id` = '{$id_sent}'";
        $result = mysql_query($update);
    }
    header("Location: {$referer}");
    // go back to the page we came from
    exit;
コード例 #3
0
ファイル: rpc.php プロジェクト: srikanthash09/codetestdatld
$ip = $_SERVER['REMOTE_ADDR'];
// kill the script because normal users will never see this.
if ($vote_sent > $units) {
    die('Sorry, vote appears to be invalid.');
}
//connecting to the database to get some information
$query = mysql_query("SELECT `total_votes`, `total_value`, `used_ips` FROM `{$rating_dbname}`.`{$rating_tableName}` WHERE `id` = '{$id_sent}'") or die("Error: " . mysql_error());
$numbers = mysql_fetch_assoc($query);
$checkIP = unserialize($numbers['used_ips']);
$count = $numbers['total_votes'];
//how many votes total
$current_rating = $numbers['total_value'];
// total number of rating added together and stored
$sum = $vote_sent + $current_rating;
// add together the current vote value and the total vote value
$tense = $count == 1 ? $productrating->traduz('vote') : $productrating->traduz('votes');
$sum == 0 ? $added = 0 : ($added = $count + 1);
is_array($checkIP) ? array_push($checkIP, $ip_num) : ($checkIP = array($ip_num));
$insertip = serialize($checkIP);
// IP check when voting
$voted = mysql_num_rows(mysql_query("SELECT `used_ips` FROM `{$rating_dbname}`.`{$rating_tableName}` WHERE `used_ips` LIKE '%" . $ip . "%' AND `id` = '" . $id_sent . "'"));
if (!$voted) {
    // if the user hasn't yet voted, then vote normally...
    if ($vote_sent >= 1 && $vote_sent <= $units && $ip == $ip_num) {
        // keep votes within range
        $update = "UPDATE `{$rating_dbname}`.`{$rating_tableName}` SET `total_votes` = '" . $added . "', `total_value` = '" . $sum . "', `used_ips` = '" . $insertip . "' WHERE `id` = '{$id_sent}'";
        $result = mysql_query($update);
    }
}
// these are new queries to get the new values!
$newtotals = mysql_query("SELECT `total_votes`, `total_value`, `used_ips` FROM `{$rating_dbname}`.`{$rating_tableName}` WHERE `id` = '{$id_sent}'") or die("Error: " . mysql_error());