hey guys i searched the whole google i coudnt find any star rating
helper for cakephp i found two they are oudated

i found a star rating called ajaxstarrater_v122 its php and it stores
it in database and i have no idea how to implement it to cakephp if
some help here thank you in advance

these are some code give u ideas


this is the databse file

<?php
/*
Page:           _config-rating.php
Created:        Aug 2006
Last Mod:       Mar 18 2007
Holds info for connecting to the db, and some other vars
---------------------------------------------------------
ryan masuga, masugadesign.com
r...@masugadesign.com
Licensed under a Creative Commons Attribution 3.0 License.
http://creativecommons.org/licenses/by/3.0/
See readme.txt for full credit details.
--------------------------------------------------------- */

        //Connect to  your rating database
        $rating_dbhost        = 'localhost';
        $rating_dbuser        = 'root';
        $rating_dbpass        = 'root';
        $rating_dbname        = 'rating';
        $rating_tableName     = 'ratings';
        $rating_path_db       = ''; // the path to your db.php file (not used
yet!)
        $rating_path_rpc      = ''; // the path to your rpc.php file (not
used yet!)

        $rating_unitwidth     = 30; // the width (in pixels) of each rating
unit (star, etc.)
        // if you changed your graphic to be 50 pixels wide, you should
change the value above

$rating_conn = mysql_connect($rating_dbhost, $rating_dbuser,
$rating_dbpass) or die  ('Error connecting to mysql');
        //mysql_select_db($rating_dbname);

?>



this _drawrating.php


<?php
/*
Page:           _drawrating.php
Created:        Aug 2006
Last Mod:       Mar 18 2007
The function that draws the rating bar.
---------------------------------------------------------
ryan masuga, masugadesign.com
r...@masugadesign.com
Licensed under a Creative Commons Attribution 3.0 License.
http://creativecommons.org/licenses/by/3.0/
See readme.txt for full credit details.
--------------------------------------------------------- */
function rating_bar($id,$units='',$static='') {

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) ? "vote" : "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">';
                $static_rater[] .= '<div id="unit_long'.$id.'">';
                $static_rater[] .= '<ul id="unit_ul'.$id.'" class="unit-rating"
style="width:'.$rating_unitwidth*$units.'px;">';
                $static_rater[] .= '<li class="current-rating" style="width:'.
$rating_width.'px;">Currently '.$rating2.'/'.$units.'</li>';
                $static_rater[] .= '</ul>';
                $static_rater[] .= '<p class="static">'.$id.'. Rating: <strong> 
'.
$rating1.'</strong>/'.$units.' ('.$count.' '.$tense.' cast) <em>This
is \'static\'.</em></p>';
                $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.'">';
      $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="db.php?j='.$ncount.'&q='.
$id.'&t='.$ip.'&c='.$units.'" title="'.$ncount.' out of '.
$units.'" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</
a></li>';
           }
      }
      $ncount=0; // resets the count

      $rater.='  </ul>';
      $rater.='  <p';
      if($voted){ $rater.=' class="voted"'; }
      $rater.='>'.$id.' Rating: <strong> '.$rating1.'</strong>/'.
$units.' ('.$count.' '.$tense.' cast)';
      $rater.='  </p>';
      $rater.='</div>';
      $rater.='</div>';
      return $rater;
 }
}
?>


the db
<?php
/*
Page:           db.php
Created:        Aug 2006
Last Mod:       Mar 18 2007
This page handles the database update if the user
does NOT have Javascript enabled.
---------------------------------------------------------
ryan masuga, masugadesign.com
r...@masugadesign.com
Licensed under a Creative Commons Attribution 3.0 License.
http://creativecommons.org/licenses/by/3.0/
See readme.txt for full credit details.
--------------------------------------------------------- */
header("Cache-Control: no-cache");
header("Pragma: nocache");
require('_config-rating.php'); // get the db connection info

//getting the values
$vote_sent = preg_replace("/[^0-9]/","",$_REQUEST['j']);
$id_sent = preg_replace("/[^0-9a-zA-Z]/","",$_REQUEST['q']);
$ip_num = preg_replace("/[^0-9\.]/","",$_REQUEST['t']);
$units = preg_replace("/[^0-9]/","",$_REQUEST['c']);
$ip = $_SERVER['REMOTE_ADDR'];
$referer  = $_SERVER['HTTP_REFERER'];

if ($vote_sent > $units) die("Sorry, vote appears to be invalid."); //
kill the script because normal users will never see this.

//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) ? "vote" : "votes"; //plural form votes/vote

// checking to see if the first vote has been tallied
// or increment the current number of votes
($sum==0 ? $added=0 : $added=$count+1);

// if it is an array i.e. already has entries the push in another
value
((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;
} //end for the "if(!$voted)"
?>


"
?>



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to