We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 32519
    • 94 Posts
    I don’t know how much information to give you right away, so I’ll just give a brief explaination first.
    I’m using the Unobtrusive Ajax Star Rating Bar. It uses 4 php files, 2 js files, 1 css file, and 2 images, though I don’t think it’s as complicated as it sounds.
    I’m using it here: http://www.themovietimeline.net/modx/index.php?id=15

    My problem:
    I want this script to be on all of my movie pages, but you have to give each script a unique ID. No problem. I figured I’d use a [+id+] placeholder in the snippet, but it doesn’t work when I do it that way.
    My snippet looks like <?php echo rating_bar(’3’,’10’);?>. ’3’ is the id# and ’10’ is the number of units (stars) to be used. When I call it out like this, it works fine, but then I’d have to change the id number for every page.

    A callout similar to this is what I need, and it almost works: <?php echo rating_bar(’[*id*]’,’10’);?> , but it won’t record the rating, as soon as I refresh it’s back to zero.

    I also have another snippet callout at the top of each page <?php require(’_drawrating.php’);?>

    I don’t know php at all, but in the _drawrating.php file it has a variables for the id like $id , $id_sent, and some other php code that I think might be messing it up, but I don’t know. Maybe someone experienced will just be able to look at this real quickly and figure out what’s wrong.

    Can I use a placeholder in this instance? It won’t recognize any placeholder but the [*id*] one, so I’m not sure if it’s even understanding it as a placeholder?

    Thanks in advance.


      <a href="http://www.themovietimeline.net">The Movie Timeline</a> | <a href="http://www.antstuff.net">The Antfarm Site</a>
      • 4310
      • 2,310 Posts
      Something like this might work...
      <?php
      $docid = $modx->documentIdentifier;
      $output = "rating_bar('{$docid}','10')";
      return $output;
      ?>
        • 32519
        • 94 Posts
        Quote from: bunk58 at Apr 18, 2010, 03:21 PM

        Something like this might work...
        <?php
        $docid = $modx->documentIdentifier;
        $output = "rating_bar('{$docid}','10')";
        return $output;
        ?>


        Alright. I’ll give that a try. Thx
          <a href="http://www.themovietimeline.net">The Movie Timeline</a> | <a href="http://www.antstuff.net">The Antfarm Site</a>
          • 32519
          • 94 Posts
          Sorry for the long delay. I haven’t been on since you replied.
          I’m a little confused on where to place the code you suggested? Do I add that code to my main php script? Or in the snippet callout itself? If someone can help me out with this, I’d be happy to return the favor somehow!

          All of my snippets references 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
          [email protected]
          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.’&amp;q=’.$id.’&amp;t=’.$ip.’&amp;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.=’><strong>’.$rating1.’</strong>%</p><p style="font-size: 12px; margin-top: -40px; margin-left: 50px;">(’.$count.’ ’.$tense.’ cast)’;
          $rater.=’ </p>’;
          $rater.=’</div>’;
          $rater.=’</div>’;
          return $rater;
          }
          }
          ?>
            <a href="http://www.themovietimeline.net">The Movie Timeline</a> | <a href="http://www.antstuff.net">The Antfarm Site</a>
            • 4310
            • 2,310 Posts
            My snippet code should replace your snippet code
            My snippet looks like <?php echo rating_bar(’3’,’10’);?>
              • 32519
              • 94 Posts
              When I put your snippet in, it just came back blank with this text: rating_bar(’15’,’10’)

              I took off the parenthesis like this:
              <?php
              $docid = $modx->documentIdentifier;
              $output = rating_bar(’{$docid}’,’10’);
              return $output;
              ?>

              and it returned the rating slider, but when I voted it just sat there thinking forever?
              Any ideas?
                <a href="http://www.themovietimeline.net">The Movie Timeline</a> | <a href="http://www.antstuff.net">The Antfarm Site</a>
                • 32519
                • 94 Posts
                Damn. I wish I knew a damn thing about php! I finally learned css and a lot of html after 6 years of rebellion, but I’m glad I did. I just don’t wanna dive right into php. Somebody should really figure this out for me, or recommend a better rating script where I can change the image and number of units to suit. Just a thought.
                  <a href="http://www.themovietimeline.net">The Movie Timeline</a> | <a href="http://www.antstuff.net">The Antfarm Site</a>
                  • 15117
                  • 1 Posts
                  what your ment to do is add the ratings db fields onto your main sites fields so instead of it being a table called ratings u take the fields inside there and put them with your video page fields then just change the php to link there.