Soyez le premier à donner votre avis sur cette source.
Vue 6 892 fois - Téléchargée 603 fois
<?php //Affichage de la barre de notation function rating_bar($id_serie, $units = '', $static = '') { //enregistrement de la page de notation $_SESSION['referer'] = $_SERVER['SCRIPT_URL']; //info require('_config-rating.php'); //config variable if (!$units) {$units = ETOILE_MAX;} //par défaut, affichage de 10 étoiles if (!$static) {$static = FALSE;} // par défaut, activation des votes. //on prend les infos propre à la série $query = mysql_query('SELECT count(note) as count, sum(note) as total_value FROM '.$rating_tableName.' WHERE id_serie="'.$id_serie.'" ') or die('Error (1): '.mysql_error()); $numbers = mysql_fetch_assoc($query); //calcul du nombre de votes $count = $numbers['count']; //somme des votes $current_rating = $numbers['total_value']; //singulier / pluriel $tense = ($count <= 1) ? "vote" : "votes"; //On regarde si le membre à déja voté. //si MOD = false on désactive les modification de vote if (MOD == false) { $voted = mysql_fetch_array(mysql_query('SELECT id FROM '.$rating_tableName.' WHERE id_user="'.$id_user.'" AND id_serie="'.$id_serie.'" ')); } //On calcul la taille de la barre de notation $rating_width = @number_format($current_rating/$count,2)*$rating_unitwidth; $rating1 = @number_format($current_rating/$count,1); $rating2 = @number_format($current_rating/$count,2); //Si on a choisi de désactiver les votes if ($static == 'static') { $static_rater = array(); $static_rater[] .= "\n".'<div class="ratingblock">'; $static_rater[] .= '<div id="unit_long'.$id_serie.'">'; $static_rater[] .= '<ul id="unit_ul'.$id_serie.'" class="unit-rating" style="width:'.$rating_unitwidth*$units.'px;" style="text-align:center;">'; $static_rater[] .= '<li class="current-rating" style="width:'.$rating_width.'px;">Actuellement '.$rating2.'/'.$units.'</li>'; $static_rater[] .= '</ul>'; $static_rater[] .= '<p class="static" style="text-align:center;">Note : <strong> '.$rating1.'</strong>/'.$units.' ('.$count.' '.$tense.')</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_serie.'">'; $rater.=' <ul id="unit_ul'.$id_serie.'" class="unit-rating" style="width:'.$rating_unitwidth*$units.'px;" style="text-align:center;">'; $rater.=' <li class="current-rating" style="width:'.$rating_width.'px;">Actuellement '.$rating2.'/'.$units.'</li>'; //boucle pour afficher le nombre d'étoiles voulues for ($ncount = 1; $ncount <= $units; $ncount++) { //si le membre n'a pas encore voté, on affiche la possibilité de voter if(!$voted or MOD == true) { $rater .= '<li><a href="db.php?j='.$ncount.'&q='.$id_serie.'&t='.$id_user.'&c='.$units.'" title="'.$ncount.' sur '.$units.'" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</a></li>'; } } $rater.=' </ul>'; $rater.=' <p style="text-align:center;"'; if($voted) //si membre a voté { $rater.=' class="voted"';} $rater.='>Note : <strong> '.$rating1.'</strong>/'.$units.' ('.$count.' '.$tense.')'; if($voted) //si membre a voté { $rater.='<br/>Ma note : <strong> '.$voted['note'].'</strong>/'.$units.'';} $rater.=' </p>'; $rater.='</div>'; $rater.='</div>'; return $rater; } } ?>
Si tu ne veux pas tenir compte de l'id du membre mais seulement de son ip, c'est le cas le plus simple :
Il faut remplacer la valeur de la variable $id_user qui normalement est égal à l'id du membre par l'adresse ip. (il faudra alors peut-être modifié le type de champ dans la table sql car je ne pense pas si le point (.) peut être enregistré comme INT.
Par contre pour rajouter la variables contenant l'ip, il faut alors rajouter un champ dans la table, dans les différents liens et aussi dans le fichier JS.
le lien sera quelque chose dans ce genre :
["db.php?j='.$ncount.'&q='.$id_serie.'&t='.$id_user.'&c='.$units.'&i='.$ip.'" title="'.$ncount.' sur '.$units.'" class="r'.$ncount.'-unit rater" rel="nofollow '.$ncount.']
Car j'aimerais inclure votre code sur mon annuaire mais j'aimerais que les visiteurs simples sans qu'ils soient membres puissent aussi voter...
Vu que c'est un code où l'ont doit lancer l'installation et qui créer la BDD et bien j'aimerais savoir si c'est possible ( je pense que oui ) et surtout quel variable et où doit on la mettre dans votre code pour que la table soit créer en même temps et qui après empêcherais une 2èmes vote de la même ip du visiteur (pas du membre)...?
Merci d'avance.
Cordialement
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.