Greenguy's Board

Greenguy's Board (http://www.greenguysboard.com/board/index.php)
-   Programming & Scripting (http://www.greenguysboard.com/board/forumdisplay.php?f=15)
-   -   Need help from PHP gurus (http://www.greenguysboard.com/board/showthread.php?t=53529)

A.J. Angel 2009-07-11 11:46 PM

Need help from PHP gurus
 
Hopefully, one on this board may help me! It shouldn't be too complicated. :) Anyway, I'm trying to edit a rating script file to display the stars only and instead of having the total rating under it, I would like it to be in the TITLE tags. So far, it only works when the user hasn't rated yet. Once the user has rated, the rating stats doesn't appear anymore. The script is from this site. Any help would be much appreciated. Thank you!

Here is the full code:

PHP Code:

<?php
/*
Page:           _drawrating.php
Created:        Aug 2006
Last Mod:       Mar 18 2007
The function that draws the rating bar.
--------------------------------------------------------- 
ryan masuga, masugadesign.com
ryan@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="Rating: '.$current_rating.'/'.$units.' ('.$count.' '.$tense.' cast)" 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: '.$rating1.'/'.$units.' ('.$count.' '.$tense.' cast)';
      
$rater.='  </p>';
      
$rater.='</div>';
      
$rater.='</div>';
      return 
$rater;
 }
}
?>

And here is the code where the TITLE tags are located and that should be edited:

PHP Code:

           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="Rating: '.$current_rating.'/'.$units.' ('.$count.' '.$tense.' cast)" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</a></li>';
           } 


nate 2009-07-12 12:25 AM

I might try this hack first:

if(!$voted) { // if the user hasn't yet voted, draw the voting stars
$rater.='
  • '.$ncount.'
  • ';
    }
    else {
    include ("db.php");
    }


    If my guess is right, after a person votes, they'll only see the stars.

    A.J. Angel 2009-07-12 04:41 PM

    Quote:

    Originally Posted by nate (Post 457081)
    If my guess is right, after a person votes, they'll only see the stars.

    Yeah, that's the case. I actually have a page set up here:

    http://www.exquisiteangelz.com/ratings/

    What I would like is that for both users who have rated and who have not rated, they only see the total ratings stats. This is because I would like to have the stars displayed alone with the stats appearing in the TITLE tags so it is displayed when the surfer hovers over the stars.

    I have modified it with the following but once the surfer have voted, the stats don't appear when they hover over the stars.

    PHP Code:

          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="Rating: '.$current_rating.'/'.$units.' ('.$count.' '.$tense.' cast)" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</a></li>';
               } 



    All times are GMT -4. The time now is 11:02 AM.

    Powered by vBulletin® Version 3.8.1
    Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
    © Greenguy Marketing Inc