Home
Accueil
Downloads
Téléchargements
Forums
Forums
Your Account
Votre compte
Chez stefvar :: Voir le sujet - Pour les Sondages
FAQ
FAQ
Rechercher
Rechercher
Liste des Membres
Liste des Membres
Groupes d'utilisateurs
Groupes d'utilisateurs
Profil
Profil
Connexion
Connexion
Se connecter pour vérifier ses messages privés
Se connecter pour vérifier ses messages privés
Chez stefvar Index du Forum -> Archives PHP-Nuke » Général

Poster un nouveau sujet   Répondre au sujet
Pour les Sondages
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
petitjo86
Spécialiste
Spécialiste


Inscrit le: Nov 09, 2006
Messages: 749
Localisation: Châtellerault

MessagePosté le: 24 Nov 2006, 23:13    Sujet du message: Pour les Sondages Répondre en citant

Bonsoir,

Voilà j'aimerais savoir si le module "Sondage", peut être modifié pour que les gens ne vote qu'une seule et unique fois, en ce basant sur les cookies ou adresse IP. Ou existe t'il un module sondage de ce type, disponible?

Cordialement,

@+ Petit Jo
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
stefvar
Administrateur
Administrateur


Inscrit le: Jul 06, 2005
Messages: 8261
Localisation: France Corse Ventiseri

MessagePosté le: 24 Nov 2006, 23:43    Sujet du message: Re : Pour les Sondages Répondre en citant

Bonjour,

Pas à ma connaissance mais en fait ce module n'a pas été écrit en se sens puisqu'il se base sur les adresses IP et un temps prédéfini pour "limiter" les votes. Seul celui du Forum ne permet qu'un seul vote. Ceci étant, le module ne demande pas grandes modifications pour faire en sorte que les pseudos des membres soient enregistrés en permanence pour un vote donné et de fait, limiter à un seul vote par sondage.
_________________
Avant de poster, lire la charte du forum, merci.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
petitjo86
Spécialiste
Spécialiste


Inscrit le: Nov 09, 2006
Messages: 749
Localisation: Châtellerault

MessagePosté le: 25 Nov 2006, 0:06    Sujet du message: Re : Pour les Sondages Répondre en citant

Re,

Je viens de passer le module sondage uniquement pour les membres enregistrés, et apparement on ne peut voter qu'une fois.
Je vais patienter un peu et voir si je peux encore voter, en espèrant ne pas pouvoir, comme ça mon problème serait résolu. C'est un peu dommage que seules les utilisateurs enregistrés puissent voter, mais on feras avec, si ça fonctionne comme ça bien sur Wink

@+ Petit Jo
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
petitjo86
Spécialiste
Spécialiste


Inscrit le: Nov 09, 2006
Messages: 749
Localisation: Châtellerault

MessagePosté le: 25 Nov 2006, 0:15    Sujet du message: Re : Pour les Sondages Répondre en citant

Re,

Zut ça ne marche pas Confused il va falloir que je trouve quelque chose pour que l'on ne vote qu'une fois.
Il n'y a pas moyen d'augmenter le temps entre 2 vote? qui actuellement est peut être de 5mn et de le passé à 15 jours, un sondage ne dure jamais si longtemps et à la rigueur si l'utilisateur vote tous les 15 jours, ce n'est pas dramatique Wink .

Je regarderais demain si je peux trouver quelque chose à modifié, mais la c'est moins sur, je ne suis pas trop doué Smile

@+ Petit Jo
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
stefvar
Administrateur
Administrateur


Inscrit le: Jul 06, 2005
Messages: 8261
Localisation: France Corse Ventiseri

MessagePosté le: 25 Nov 2006, 0:36    Sujet du message: Re : Pour les Sondages Répondre en citant

Re,

Tout est possible, comme de retirer les copyrights Laughing .
_________________
Avant de poster, lire la charte du forum, merci.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
petitjo86
Spécialiste
Spécialiste


Inscrit le: Nov 09, 2006
Messages: 749
Localisation: Châtellerault

MessagePosté le: 25 Nov 2006, 11:40    Sujet du message: Re : Pour les Sondages Répondre en citant

Bonjour,

Ou as tu vu qu'il manqué des Copyrights Wink en cherchant on trouve parfois Laughing

Sinon je viens de regarder, dans le fichier index de "survey" et j'ai vu cette ligne

@past = time()-1800: (j'ai remplacé le dollar par @ et le point-virgule par 2 points)

Si je remplace cette valeur -1800 par une autre, bien supérieur genre -500000, est ce que ça peut le faire?

@+ Petit Jo
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
stefvar
Administrateur
Administrateur


Inscrit le: Jul 06, 2005
Messages: 8261
Localisation: France Corse Ventiseri

MessagePosté le: 25 Nov 2006, 11:47    Sujet du message: Re : Pour les Sondages Répondre en citant

Re,

Farceur va ......... mais je "chouffe" Laughing Wink .
Oui si tu augmentes la valeur, cela augmentera la possibilité de vote entre deux pour une adresse IP donnée. Seulement si l'utilisateur n'a pas d'IP fixe, il lui suffit de se déconnecter et reconnecter pour pouvoir voter à nouveau.
Je vais faire un petit truc pour remédier à cela, patience.
_________________
Avant de poster, lire la charte du forum, merci.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
petitjo86
Spécialiste
Spécialiste


Inscrit le: Nov 09, 2006
Messages: 749
Localisation: Châtellerault

MessagePosté le: 25 Nov 2006, 12:08    Sujet du message: Re : Pour les Sondages Répondre en citant

Re,

Pour les Copyrights, c'était bien une ligne dans mon thème qui les désactivés, je n'avais pas pris le temps de chercher, maintenant c'est fait Very Happy , le respect du travail des autres Laughing

Sinon merci, pour la futur modif, en attendant je vais modifié la valeur, ce seras toujours ça Wink , content de moi j'ai réussi à mettre le doigt dessus Smile , je suis pas trop nul Laughing

@+ Petit Jo
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
stefvar
Administrateur
Administrateur


Inscrit le: Jul 06, 2005
Messages: 8261
Localisation: France Corse Ventiseri

MessagePosté le: 25 Nov 2006, 13:47    Sujet du message: Re : Pour les Sondages Répondre en citant

Re,

Voilà, j'ai effectué quelques modifications et il n'y a plus qu'à attendre un peu voir ce que celà donne.
Amuse toi à aller voter pour des sondages, même plusieurs fois, on sera vite fixé. Je n'ai pas encore fait le bloc, ne passe donc pas par ce dernier. Si tout est bon je mettrai le code sur le forum.
_________________
Avant de poster, lire la charte du forum, merci.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
petitjo86
Spécialiste
Spécialiste


Inscrit le: Nov 09, 2006
Messages: 749
Localisation: Châtellerault

MessagePosté le: 25 Nov 2006, 14:07    Sujet du message: Re : Pour les Sondages Répondre en citant

Re,

Ok, c'est parti je vote à fond, on va bien voir Wink

Quelle réactivité, je suis impressionné Shocked

Merci,

@+ Petit Jo
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
petitjo86
Spécialiste
Spécialiste


Inscrit le: Nov 09, 2006
Messages: 749
Localisation: Châtellerault

MessagePosté le: 25 Nov 2006, 14:57    Sujet du message: Re : Pour les Sondages Répondre en citant

Re,

Donc après une campagne de vote intensif Wink , je me prépare pour l'année prochaine Laughing , et bien en tant que membre je n'ai pu voté qu'une seule fois par sondage (avec un joli petit message en rouge) m'expliquant le pourquoi du comment de la chose Very Happy .
Puis, je me suis déconnecté, et refait un deuxieme tour, là j'ai pu voté à nouveau, mais une seule fois.
Comme je n'utilise les sondages, que pour les membres de mon site, je pense que la modification que tu as faites, doit parfaitement me convenir Wink

Merci, pour ce magnifique travail Very Happy

@+ Petit Jo
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
stefvar
Administrateur
Administrateur


Inscrit le: Jul 06, 2005
Messages: 8261
Localisation: France Corse Ventiseri

MessagePosté le: 25 Nov 2006, 15:08    Sujet du message: Re : Pour les Sondages Répondre en citant

Re,

Oui j'ai vu tes votes ainsi que celui anonyme.
Je finis, entre deux réponses sur le forum, le bloc et je tache d'insérer les changement sur le forum.
Je pense que je vais faire carrément un autre module avec plus de fonctions car plus je rajoute du code ici et là, plus je medis que tient, il faudrait faire celà aussi, etc. etc.
Enfin, le reste on verra plus tard.
_________________
Avant de poster, lire la charte du forum, merci.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
stefvar
Administrateur
Administrateur


Inscrit le: Jul 06, 2005
Messages: 8261
Localisation: France Corse Ventiseri

MessagePosté le: 25 Nov 2006, 16:57    Sujet du message: Re : Pour les Sondages Répondre en citant

Re,

Bon ben voilà le premier jet.
En premier lieu on va mettre la table des suivis à zéro et en profiter pour rajouter le champ nécessaire via cette requête :
Code:
DROP TABLE IF EXISTS nuke_poll_check;
CREATE TABLE nuke_poll_check (
  ip VARCHAR(20) NOT NULL default '',
  time VARCHAR(14) NOT NULL default '',
  pollID INT(10) NOT NULL default '0',
  name_poll VARCHAR(30) NOT NULL default ''
) TYPE=MyISAM;

Ensuite remplace le code du fichier index.php du module par celui-ci (attention à la ligne 309 il y a 3 @@@ à retirer) :
Code:
<?php

/************************************************************************/
/* PHP-NUKE: Web Portal System                                          */
/* ===========================                                          */
/*                                                                      */
/* Copyright (c) 2006 by Francisco Burzi                                */
/* http://phpnuke.org                                                   */
/*                                                                      */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License.       */
/************************************************************************/

if (!defined('MODULE_FILE')) {
   die ("You can't access this file directly...");
}

require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
$index = 1; // For < Patched 3.1
$pagetitle = "- "._SURVEYS."";
if (isset($pollID)) {
   $pollID = intval($pollID);
}

if(!isset($pollID)) {
   include ('header.php');
   pollList();
   include ('footer.php');
} elseif ($pollID <= 0) {
   Header("Location: modules.php?name=$module_name");
   die();
} elseif($op == "results" && $pollID > 0) {
    if (isset($tid)) {
      Header("Location: modules.php?name=$module_name"); // SecurityReason Fix 2005 - sp3x -> Now should be OK.
   }
   include ("header.php");
   OpenTable();
   echo "<center><font class=\"title\"><b>"._CURRENTPOLLRESULTS."</b></font></center>";
   CloseTable();
   echo "<br>";
   OpenTable();
   pollResults($pollID);
   CloseTable();
   echo "<br>";
   OpenTable();
   echo "<b>"._LAST5POLLS." $sitename</b><br><br>";
   $r_options = "";
   if (isset($userinfo['umode'])) { $r_options .= "&amp;mode=".$userinfo['umode']; }
   if (isset($userinfo['uorder'])) { $r_options .= "&amp;order=".$userinfo['uorder']; }
   if (isset($userinfo['thold'])) { $r_options .= "&amp;thold=".$userinfo['thold']; }
   $result = $db->sql_query("SELECT pollID, pollTitle, voters FROM ".$prefix."_poll_desc where artid='0' order by timeStamp DESC limit 1,5");
   while ($row = $db->sql_fetchrow($result)) {
      $plid = intval($row['pollID']);
      $pltitle = filter($row['pollTitle'], "nohtml");
      $plvoters = intval($row['voters']);
      if ($pollID == $plid) {
         echo "<img src='images/arrow.gif' border='0'>&nbsp;$pltitle ($plvoters "._LVOTES.")<br><br>";
      } else {
         echo "<img src='images/arrow.gif' border='0'>&nbsp;<a href='modules.php?name=$module_name&amp;op=results&amp;pollID=$plid$r_options'>$pltitle</a> ($plvoters "._LVOTES.")<br><br>";
      }
   }
   echo "<div align=\"right\"><a href='modules.php?name=$module_name'><b>"._MOREPOLLS."</b></a></div>";
   CloseTable();
   cookiedecode($user);
   if (($pollcomm) AND ((!isset($mode)) OR ($mode != "nocomments")) AND !isset($tid)) {
      echo "<br>";
      include("modules/Surveys/comments.php");
   }
   include ("footer.php");
} elseif(isset($voteID) AND ($voteID > 0)) {
   pollCollector($pollID, $voteID);
} elseif($pollID != pollLatest()) {
   include ('header.php');
   OpenTable();
   echo "<center><font class=\"option\"><b>"._SURVEY."</b></font></center>";
   CloseTable();
   echo "<br><br>";
   echo "<table border=\"0\" align=\"center\"><tr><td>";
   pollMain($pollID);
   echo "</td></tr></table>";
   include ('footer.php');
} else {
   include ('header.php');
   OpenTable();
   echo "<center><font class=\"option\"><b>"._CURRENTSURVEY."</b></font></center>";
   CloseTable();
   echo "<br><br><table border=\"0\" align=\"center\"><tr><td>";
   pollNewest();
   echo "</td></tr></table>";
   include ('footer.php');
}

/*********************************************************/
/* Functions                                             */
/*********************************************************/

function pollMain($pollID) {
   global $boxTitle, $boxContent, $pollcomm, $user, $cookie, $prefix, $module_name, $db, $userinfo;
   $pollID = intval($pollID);
   if(!isset($pollID))
   $pollID = 1;
   $boxContent .= "<form action=\"modules.php?name=$module_name\" method=\"post\">";
   $boxContent .= "<input type=\"hidden\" name=\"pollID\" value=\"".$pollID."\">";
   $result_a = $db->sql_query("SELECT pollTitle, voters FROM ".$prefix."_poll_desc WHERE pollID='$pollID'");
   list($pollTitle, $voters) = $db->sql_fetchrow($result_a);
   $boxTitle = _SURVEY;
   $boxContent .= "<font class=\"content\"><b>$pollTitle</b></font><br><br>\n";
   $boxContent .= "<table border=\"0\" width=\"100%\">";
   for($i = 1; $i <= 12; $i++) {
      $result = $db->sql_query("SELECT pollID, optionText, optionCount, voteID FROM ".$prefix."_poll_data WHERE pollID='$pollID' AND voteID='$i'");
      $row = $db->sql_fetchrow($result);
         $optionText = $row['optionText'];
         if(!empty($optionText)) {
            $boxContent .= "<tr><td valign=\"top\"><input type=\"radio\" name=\"voteID\" value=\"".$i."\"></td><td width=\"100%\"><font class=\"content\">$optionText</font></td></tr>\n";
      }
   }
   $boxContent .= "</table><br><center><font class=\"content\"><input type=\"submit\" value=\""._VOTE."\"></font><br>";
   if (is_user($user)) {
      cookiedecode($user);
      getusrinfo($user);
   }
   $sum = 0;
   for($i = 0; $i < 12; $i++) {
      $result2 = $db->sql_query("SELECT optionCount FROM ".$prefix."_poll_data WHERE pollID='$pollID' AND voteID='$i'");
      $row2 = $db->sql_fetchrow($result2);
      $optionCount = $row2['optionCount'];
      $sum = (int)$sum+$optionCount;
   }
   $boxContent .= "<br><font class=\"content\"><a href=\"modules.php?name=$module_name&amp;op=results&amp;pollID=$pollID&amp;mode=".$userinfo['umode']."&amp;order=".$userinfo['uoder']."&amp;thold=".$userinfo['thold']."\"><b>"._RESULTS."</b></a><br><a href=\"modules.php?name=$module_name\"><b>"._POLLS."</b></a><br>";
   if ($pollcomm) {
      list($numcom) = $db->sql_fetchrow($db->sql_query("select count(*) from ".$prefix."_pollcomments where pollID='$pollID'"));
      $boxContent .= "<br>"._VOTES.": <b>$sum</b> <br> "._PCOMMENTS." <b>$numcom</b>\n\n";
   } else {
      $boxContent .= "<br>"._VOTES." <b>$sum</b>\n\n";
   }
   $boxContent .= "</font></center></form>\n\n";
   themesidebox($boxTitle, $boxContent);

   cookiedecode($user);
   $username = $cookie[1];
    if ($username == "") {
        $username = "Anonymes";
    }

   $query = $db->sql_query("SELECT ip,name_poll FROM ".$prefix."_poll_check WHERE (name_poll='$username') AND (pollID='$pollID')");
   $row = $db->sql_fetchrow($query);
   $name_poll = $row[1];
   
   $ctime = time();
    $pollID = intval($pollID);
// stefvar début anonymes
   if ($username == "Anonymes") {
   echo "<font color=#FF0000><center><b>Les votes anonymes ne sont pas autorisés</b></center></font>";
   }
// stefvar fin anonymes
// stefvar début déjà voté
   if ($username == $name_poll) {
   echo "<font color=#FF0000><center><b>Vous avez déjà voté pour ce sondage.<br>Un seul vote est permis par utilisateur</b></center></font>";
   }
// stefvar fin déjà voté
}

function pollLatest() {
   global $prefix, $multilingual, $currentlang, $db;
   if ($multilingual == 1) {
      $querylang = "WHERE planguage='$currentlang' AND artid='0'";
   } else {
      $querylang = "WHERE artid='0'";
   }
   $pollID = $db->sql_fetchrow($db->sql_query("SELECT pollID FROM ".$prefix."_poll_desc $querylang ORDER BY pollID DESC LIMIT 1"));
   return $pollID[0];
}

function pollNewest() {
   $pollID = pollLatest();
   pollMain($pollID);
}
// stefvar début mod vote utilisateur
function pollCollector($pollID, $voteID) {
   global $HTTP_COOKIE_VARS, $prefix, $db, $module_name, $user, $cookie;
   if (empty($ip)) {
      $ip = $_SERVER['REMOTE_ADDR'];
   }
   $pollID = intval($pollID);
   $voteID = intval($voteID);
   cookiedecode($user);
   $username = $cookie[1];
    if ($username == "") {
        $username = "Anonymes";
    }

   $query = $db->sql_query("SELECT ip,name_poll FROM ".$prefix."_poll_check WHERE (name_poll='$username') AND (pollID='$pollID')");
   $row = $db->sql_fetchrow($query);
   $name_poll = $row[1];
   
   $ctime = time();
    $pollID = intval($pollID);

   if ($username == $name_poll OR "Anonymes") {
      $voteValid = 0;
   } else {
      $db->sql_query("INSERT INTO ".$prefix."_poll_check (ip, time, pollID, name_poll) VALUES ('$ip', '$ctime', '$pollID', '$username')");
      $voteValid = "1";
   }

   if($voteValid>0) {
      $db->sql_query("UPDATE ".$prefix."_poll_data SET optionCount=optionCount+1 WHERE pollID='$pollID' AND voteID='$voteID'");
      if (!empty($voteID)) {
         $db->sql_query("UPDATE ".$prefix."_poll_desc SET voters=voters+1 WHERE pollID='$pollID'");
         update_points(8);
      }
      Header("Location: modules.php?name=$module_name&amp;op=results&amp;pollID=$pollID");
   } else {
      Header("Location: modules.php?name=$module_name&amp;op=results&amp;pollID=$pollID");
   }
   echo "<html><head></head><body></body></html>";
}

function pollList() {
   global $user, $cookie, $prefix, $multilingual, $currentlang, $admin, $module_name, $db, $admin_file, $userinfo;
   $r_options = "";
   if (isset($userinfo['umode'])) { $r_options .= "&amp;mode=".$userinfo['umode']; }
   if (isset($userinfo['uorder'])) { $r_options .= "&amp;order=".$userinfo['uorder']; }
   if (isset($userinfo['thold'])) { $r_options .= "&amp;thold=".$userinfo['thold']; }
   if ($multilingual == 1) {
      $querylang = "WHERE planguage='$currentlang' AND artid='0'";
   } else {
      $querylang = "WHERE artid='0'";
   }
   $result = $db->sql_query("SELECT pollID, pollTitle, timeStamp, voters FROM ".$prefix."_poll_desc $querylang ORDER BY timeStamp DESC");
   $counter = 0;
   OpenTable();
   OpenTable();
   echo "<center><font class=\"title\"><b>"._PASTSURVEYS."</b></font></center>";
   CloseTable();
   echo "<table border=\"0\" cellpadding=\"8\"><tr><td>";
   while($row = $db->sql_fetchrow($result)) {
      $resultArray[$counter] = array($row['pollID'], $row['pollTitle'], $row['timeStamp'], $row['voters']);
      $counter++;
   }
   for ($count = 0; $count < count($resultArray); $count++) {
      $id = $resultArray[$count][0];
      $id = intval($id);
      $sum = 0;   
      $pollTitle = $resultArray[$count][1];
      $voters = $resultArray[$count][3];
      for($i = 0; $i < 12; $i++) {
         $result2 = $db->sql_query("SELECT optionCount FROM ".$prefix."_poll_data WHERE pollID='$id' AND voteID='$i'");
         $row2 = $db->sql_fetchrow($result2);
         $optionCount = $row2['optionCount'];
         $sum = (int)$sum+$optionCount;
      }
      echo "<strong><big>&middot;</big></strong>&nbsp;<a href=\"modules.php?name=$module_name&amp;pollID=$id\">$pollTitle</a> ";
      if (is_admin($admin)) {
         $editing = " - <a href=\"".$admin_file.".php?op=polledit&amp;pollID=$id\">Edit</a>";
      } else {
         $editing = "";
      }
      echo "(<a href=\"modules.php?name=$module_name&amp;op=results&amp;pollID=$id$r_options\">"._RESULTS."</a> - $sum "._LVOTES."$editing)<br>\n";
      $sum = 0;
   }
   echo "</td></tr></table>";
   echo "<table border=\"0\" cellpadding=\"8\"><tr><td>";
   if ($multilingual == 1) {
      $querylang = "WHERE planguage='$currentlang' AND artid!='0'";
   } else {
      $querylang = "WHERE artid!='0'";
   }
   $counter = 0;
   $result3 = $db->sql_query("SELECT pollID, pollTitle, timeStamp, voters FROM ".$prefix."_poll_desc $querylang ORDER BY timeStamp DESC");
   while($row3 = $db->sql_fetchrow($result3)) {
      $resultArray2[$counter] = array($row3['pollID'], $row3['pollTitle'], $row3['timeStamp'], $row3['voters']);
      $counter++;
   }
   if ($counter > 0) {
      OpenTable();
      echo "<center><font class=\"title\"><b>"._SURVEYSATTACHED."</b></font></center>";
      CloseTable();
   }
   for ($count = 0; $count < count($resultArray2); $count++) {
      $id = $resultArray2[$count][0];
      $id = intval($id);
      $sum = 0;   
      $pollTitle = $resultArray2[$count][1];
      $voters = $resultArray2[$count][3];
      for($i = 0; $i < 12; $i++) {
         $result4 = $db->sql_query("SELECT optionCount FROM ".$prefix."_poll_data WHERE pollID='$id' AND voteID='$i'");
         $row4 = $db->sql_fetchrow($result4);
         $optionCount = $row4['optionCount'];
         $sum = (int)$sum+$optionCount;
      }
      echo "<strong><big>&middot;</big></strong>&nbsp;<a href=\"modules.php?name=$module_name&amp;pollID=$id\">$pollTitle</a> ";
      if (is_admin($admin)) {
         $editing = " - <a href=\"".$admin_file.".php?op=polledit&amp;pollID=$id\">Edit</a>";
      } else {
         $editing = "";
      }
      $res = $db->sql_query("select sid, title from ".$prefix."_stories where pollID='$id'");
      list($sid, $title) = $db->sql_fetchrow($res);
      $sid = intval($sid);
      $title = filter($title, "nohtml");
      echo "(<a href=\"modules.php?name=$module_name&amp;op=results&amp;pollID=$id$r_options\">"._RESULTS."</a> - $sum "._LVOTES."$editing)<br>\n"
      .""._ATTACHEDTOARTICLE." <a href=\"modules.php?name=@@@News&amp;file=article&amp;sid=$sid$r_options\">$title</a><br><br>\n";
      $sum = "";
   }
   echo "</td></tr></table>";
   CloseTable();
}

function pollResults($pollID) {
   global $resultTableBgColor, $resultBarFile, $Default_Theme, $user, $cookie, $prefix, $admin, $module_name, $db, $admin_file, $userinfo;
   if (is_user($user)) {
      getusrinfo($user);
      cookiedecode($user);
   }
   if(!isset($pollID)) $pollID = 1;
   $pollID = intval($pollID);
   $result = $db->sql_query("SELECT pollID, pollTitle, timeStamp, artid FROM ".$prefix."_poll_desc WHERE pollID='$pollID'");
   $holdtitle = $db->sql_fetchrow($result);
   echo "<b>$holdtitle[1]</b><br><br>";
   $sum = 0;   
   for($i = 0; $i < 12; $i++) {
      $result2 = $db->sql_query("SELECT optionCount FROM ".$prefix."_poll_data WHERE pollID='$pollID' AND voteID='$i'");
      $row2 = $db->sql_fetchrow($result2);
      $optionCount = $row2['optionCount'];
      $sum = (int)$sum+$optionCount;
   }
   echo "<table border=\"0\">";
   /* cycle through all options */
   for($i = 1; $i <= 12; $i++) {
      /* select next vote option */
      $result3 = $db->sql_query("SELECT pollID, optionText, optionCount, voteID FROM ".$prefix."_poll_data WHERE pollID='$pollID' AND voteID='$i'");
      $row3 = $db->sql_fetchrow($result3);
         $optionText = $row3['optionText'];
         $optionCount = $row3['optionCount'];
         if(!empty($optionText)) {
            echo "<tr><td>";
            echo "$optionText";
            echo "</td>";
            if($sum) {
               $percent = 100 * $optionCount / $sum;
            } else {
               $percent = 0;
            }
            echo "<td>";
            $percentInt = (int)$percent * 4 * 1;
            $percent2 = (int)$percent;
                                $ThemeSel = get_theme();
            if (file_exists("themes/$ThemeSel/images/survey_leftbar.gif") AND file_exists("themes/$ThemeSel/images/survey_mainbar.gif") AND file_exists("themes/$ThemeSel/images/survey_rightbar.gif")) {
               $l_size = getimagesize("themes/$ThemeSel/images/survey_leftbar.gif");
               $m_size = getimagesize("themes/$ThemeSel/images/survey_mainbar.gif");
               $r_size = getimagesize("themes/$ThemeSel/images/survey_rightbar.gif");
               $leftbar = "survey_leftbar.gif";
               $mainbar = "survey_mainbar.gif";
               $rightbar = "survey_rightbar.gif";
            } else {
               $l_size = getimagesize("themes/$ThemeSel/images/leftbar.gif");
               $m_size = getimagesize("themes/$ThemeSel/images/mainbar.gif");
               $r_size = getimagesize("themes/$ThemeSel/images/rightbar.gif");
               $leftbar = "leftbar.gif";
               $mainbar = "mainbar.gif";
               $rightbar = "rightbar.gif";
            }
            if (file_exists("themes/$ThemeSel/images/survey_mainbar_d.gif")) {
               $m1_size = getimagesize("themes/$ThemeSel/images/survey_mainbar_d.gif");
               $mainbar_d = "survey_mainbar_d.gif";
               if ($percent2 > 0 AND $percent2 <= 23) {
                  $salto = "<img src=\"themes/$ThemeSel/images/$mainbar\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m_size[1]\" width=\"$percentInt\">";
               } elseif ($percent2 > 24 AND $percent2 < 50) {
                  $a = $percentInt - 100;
                  $salto = "<img src=\"themes/$ThemeSel/images/$mainbar\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m_size[1]\" width=\"70\">"
                  ."<img src=\"themes/$ThemeSel/images/$mainbar_d\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m1_size[1]\" width=\"30\">"
                  ."<img src=\"themes/$ThemeSel/images/$mainbar\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m_size[1]\" width=\"$a\">";
               } elseif ($percent2 > 49 AND $percent2 < 75) {
                  $a = $percentInt - 200;
                  $salto = "<img src=\"themes/$ThemeSel/images/$mainbar\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m_size[1]\" width=\"70\">"
                  ."<img src=\"themes/$ThemeSel/images/$mainbar_d\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m1_size[1]\" width=\"30\">"
                  ."<img src=\"themes/$ThemeSel/images/$mainbar\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m_size[1]\" width=\"70\">"
                  ."<img src=\"themes/$ThemeSel/images/$mainbar_d\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m1_size[1]\" width=\"30\">"
                  ."<img src=\"themes/$ThemeSel/images/$mainbar\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m_size[1]\" width=\"$a\">";
               } elseif ($percent2 > 74 AND $percent2 <= 100) {
                  $a = $percentInt - 300;
                  $salto = "<img src=\"themes/$ThemeSel/images/$mainbar\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m_size[1]\" width=\"70\">"
                  ."<img src=\"themes/$ThemeSel/images/$mainbar_d\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m1_size[1]\" width=\"30\">"
                  ."<img src=\"themes/$ThemeSel/images/$mainbar\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m_size[1]\" width=\"70\">"
                  ."<img src=\"themes/$ThemeSel/images/$mainbar_d\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m1_size[1]\" width=\"30\">"
                  ."<img src=\"themes/$ThemeSel/images/$mainbar\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m_size[1]\" width=\"70\">"
                  ."<img src=\"themes/$ThemeSel/images/$mainbar_d\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m1_size[1]\" width=\"30\">"
                  ."<img src=\"themes/$ThemeSel/images/$mainbar\" alt=\"$percent2 %\" title=\"$percent2 %\" height=\"$m_size[1]\" width=\"$a\">";
               }
            }
            if ($percent > 0) {
               echo "<img src=\"themes/$ThemeSel/images/$leftbar\" height=\"$l_size[1]\" width=\"$l_size[0]\" alt=\"$percent2 %\" title=\"$percent2 %\">";
               if (file_exists("themes/$ThemeSel/images/survey_mainbar_d.gif")) {
                  echo "$salto";
               } else {
                  echo "<img src=\"themes/$ThemeSel/images/$mainbar\" height=\"$m_size[1]\" width=\"$percentInt\" alt=\"$percent2 %\" title=\"$percent2 %\">";
               }
               echo "<img src=\"themes/$ThemeSel/images/$rightbar\" height=\"$r_size[1]\" width=\"$r_size[0]\" alt=\"$percent2 %\" title=\"$percent2 %\">";
            } else {
               echo "<img src=\"themes/$ThemeSel/images/$leftbar\" height=\"$l_size[1]\" width=\"$l_size[0]\" alt=\"$percent2 %\" title=\"$percent2 %\">";
               if (!file_exists("themes/$ThemeSel/images/survey_mainbar_d.gif")) {
                  echo "<img src=\"themes/$ThemeSel/images/$mainbar\" height=\"$m_size[1]\" width=\"$m_size[0]\" alt=\"$percent2 %\" title=\"$percent2 %\">";
               }
               echo "<img src=\"themes/$ThemeSel/images/$rightbar\" height=\"$r_size[1]\" width=\"$r_size[0]\" alt=\"$percent2 %\" title=\"$percent2 %\">";
            }
            printf(" %.2f%% (%s)", $percent, $optionCount);
            echo "</td></tr>";
      }

   }
   echo "</table><br>";
   echo "<center><font class=\"content\">";
   echo "<b>"._TOTALVOTES." $sum</b><br>";
   echo "<br><br>";
   $booth = $pollID;
   $booth = intval($booth);
   if ($holdtitle[3] > 0) {
      $article = "<br><br>"._GOBACK."</font></center>";
   } else {
      $article = "</font></center>";
   }
   echo "[ <a href=\"modules.php?name=$module_name&amp;pollID=$booth\">"._VOTING."</a> | "
   ."<a href=\"modules.php?name=$module_name\">"._OTHERPOLLS."</a> ] $article";
   if (is_admin($admin)) {
      echo "<br><center>[ <a href=\"".$admin_file.".php?op=create\">"._ADD."</a> | <a href=\"".$admin_file.".php?op=polledit&amp;pollID=$pollID\">"._EDIT."</a> ]</center>";
   }
   return(1);
}

?>


Pour finir voici le code du bloc (attention il y a 3 @@@ un peu partout à retirer) :
Code:
<?php

/************************************************************************/
/* PHP-NUKE: Web Portal System                                          */
/* ===========================                                          */
/*                                                                      */
/* Copyright (c) 2005 by Francisco Burzi                                */
/* http://phpnuke.org                                                   */
/*                                                                      */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License.       */
/************************************************************************/

if ( !defined('BLOCK_FILE') ) {
    Header("Location: ../index.php");
    die();
}

global $prefix, $multilingual, $currentlang, $db, $boxTitle, $content, $pollcomm, $user, $cookie, $userinfo;
$row = $db->sql_fetchrow($db->sql_query("SELECT pollID FROM ".$prefix."_poll_desc $querylang ORDER BY pollID DESC LIMIT 1"));
$pollID = intval($row['pollID']);
if ($pollID == 0 || empty($pollID)) {
   $content = "";
} else {
// stefvar
    if (empty($ip)) {
   $ip = $_SERVER["REMOTE_ADDR"];
    }
    cookiedecode($user);
    $username = $cookie[1];
    if ($username == "") {
        $username = "Anonymes";
    }
   $query = $db->sql_query("SELECT ip,name_poll FROM ".$prefix."_poll_check WHERE (name_poll='$username') AND (pollID='$pollID')");
   $row = $db->sql_fetchrow($query);
   $name_poll = $row[1];
// stefvar début anonymes
    if ($username == "Anonymes") {
   $content .= "<form action=\"modules.php?name=@@@Surveys\" method=\"post\">";
   $content .= "<input type=\"hidden\" name=\"pollID\" value=\"".$pollID."\">";
   $content .= "<input type=\"hidden\" name=\"forwarder\" value=\"".$url."\">";
   $row2 = $db->sql_fetchrow($db->sql_query("SELECT pollTitle, voters FROM ".$prefix."_poll_desc WHERE pollID='$pollID'"));
   $pollTitle = filter($row2['pollTitle'], "nohtml");
   $voters = intval($row2['voters']);
   $boxTitle = _SURVEY;
   $content .= "<span class=\"content\"><strong>$pollTitle</strong></span><br><br>\n";
   $content .= "<table border=\"0\" width=\"100%\">";
   for($i = 1; $i <= 12; $i++) {
      $row3 = $db->sql_fetchrow($db->sql_query("SELECT pollID, optionText, optionCount, voteID FROM ".$prefix."_poll_data WHERE (pollID='$pollID') AND (voteID='$i')"));
      if(isset($row3)) {
         $optionText = $row3['optionText'];
         if ($optionText != "") {
            $content .= "<tr><td valign=\"top\"><input type=\"radio\" value=\"\" checked=\"checked\"></td><td width=\"100%\"><span class=\"content\">$optionText</span></td></tr>\n";
         }
      }
   }
   $content .= "</table><font color=#FF0000><center><b>Les votes anonymes ne sont pas autorisés</b></center></font><center>";
   if (is_user($user)) {
      cookiedecode($user);
           getusrinfo($user);
   }
   $sum = 0;
   for($i = 0; $i < 12; $i++) {
      $row4 = $db->sql_fetchrow($db->sql_query("SELECT optionCount FROM ".$prefix."_poll_data WHERE (pollID='$pollID') AND (voteID='$i')"));
      $optionCount = intval($row4['optionCount']);
      $sum = (int)$sum+$optionCount;
   }
          if (!isset($mode) OR empty($mode)) {
            if(isset($userinfo['umode'])) {
              $mode = $userinfo['umode'];
            } else {
              $mode = "thread";
            }
          }
          if (!isset($order) OR empty($order)) {
            if(isset($userinfo['uorder'])) {
              $order = $userinfo['uorder'];
            } else {
              $order = 0;
            }
          }
          if (!isset($thold) OR empty($thold)) {
            if(isset($userinfo['thold'])) {
              $thold = $userinfo['thold'];
            } else {
              $thold = 0;
            }
          }
    $r_options = "";
    $r_options .= "&amp;mode=".$mode;
    $r_options .= "&amp;order=".$order;
    $r_options .= "&amp;thold=".$thold;
   $content .= "<br><span class=\"content\"><a href=\"modules.php?name=@@@Surveys&amp;op=results&amp;pollID=".$pollID.$r_options."\"><strong>"._RESULTS."</strong></a><br><a href=\"modules.php?name=@@@Surveys\"><strong>"._POLLS."</strong></a><br>";
   if ($pollcomm) {
      $numcom = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_pollcomments WHERE pollID='$pollID'"));
      $content .= "<br>"._VOTES.": <strong>".intval($sum)."</strong> <br> "._PCOMMENTS." <strong>".intval($numcom)."</strong>\n\n";
   } else {
      $content .= "<br>"._VOTES." <strong>".intval($sum)."</strong>\n\n";
   }
   $content .= "</span></center></form>\n\n";
    } else {
// stefvar fin anonymes
// stefvar début déja voté
    if ($username == $name_poll) {
   $content .= "<form action=\"modules.php?name=@@@Surveys\" method=\"post\">";
   $content .= "<input type=\"hidden\" name=\"pollID\" value=\"".$pollID."\">";
   $content .= "<input type=\"hidden\" name=\"forwarder\" value=\"".$url."\">";
   $row2 = $db->sql_fetchrow($db->sql_query("SELECT pollTitle, voters FROM ".$prefix."_poll_desc WHERE pollID='$pollID'"));
   $pollTitle = filter($row2['pollTitle'], "nohtml");
   $voters = intval($row2['voters']);
   $boxTitle = _SURVEY;
   $content .= "<span class=\"content\"><strong>$pollTitle</strong></span><br><br>\n";
   $content .= "<table border=\"0\" width=\"100%\">";
   for($i = 1; $i <= 12; $i++) {
      $row3 = $db->sql_fetchrow($db->sql_query("SELECT pollID, optionText, optionCount, voteID FROM ".$prefix."_poll_data WHERE (pollID='$pollID') AND (voteID='$i')"));
      if(isset($row3)) {
         $optionText = $row3['optionText'];
         if ($optionText != "") {
            $content .= "<tr><td valign=\"top\"><input type=\"radio\" value=\"\" checked=\"checked\"></td><td width=\"100%\"><span class=\"content\">$optionText</span></td></tr>\n";
         }
      }
   }
   $content .= "</table><font color=#FF0000><center><b>Vous avez déjà voté pour ce sondage.<br>Un seul vote est permis par utilisateur</b></center></font><center>";
   if (is_user($user)) {
      cookiedecode($user);
           getusrinfo($user);
   }
   $sum = 0;
   for($i = 0; $i < 12; $i++) {
      $row4 = $db->sql_fetchrow($db->sql_query("SELECT optionCount FROM ".$prefix."_poll_data WHERE (pollID='$pollID') AND (voteID='$i')"));
      $optionCount = intval($row4['optionCount']);
      $sum = (int)$sum+$optionCount;
   }

          if (!isset($mode) OR empty($mode)) {
            if(isset($userinfo['umode'])) {
              $mode = $userinfo['umode'];
            } else {
              $mode = "thread";
            }
          }
          if (!isset($order) OR empty($order)) {
            if(isset($userinfo['uorder'])) {
              $order = $userinfo['uorder'];
            } else {
              $order = 0;
            }
          }
          if (!isset($thold) OR empty($thold)) {
            if(isset($userinfo['thold'])) {
              $thold = $userinfo['thold'];
            } else {
              $thold = 0;
            }
          }
    $r_options = "";
    $r_options .= "&amp;mode=".$mode;
    $r_options .= "&amp;order=".$order;
    $r_options .= "&amp;thold=".$thold;
   $content .= "<br><span class=\"content\"><a href=\"modules.php?name=@@@Surveys&amp;op=results&amp;pollID=".$pollID.$r_options."\"><strong>"._RESULTS."</strong></a><br><a href=\"modules.php?name=@@@Surveys\"><strong>"._POLLS."</strong></a><br>";
   if ($pollcomm) {
      $numcom = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_pollcomments WHERE pollID='$pollID'"));
      $content .= "<br>"._VOTES.": <strong>".intval($sum)."</strong> <br> "._PCOMMENTS." <strong>".intval($numcom)."</strong>\n\n";
   } else {
      $content .= "<br>"._VOTES." <strong>".intval($sum)."</strong>\n\n";
   }
   $content .= "</span></center></form>\n\n";
    } else {
// stefvar fin déja voté
// stefvar début n'a pas voté
   if (!isset($url)) {
           $url = "modules.php?name=@@@Surveys&amp;op=results&amp;pollID=".$pollID."";
   }
   $content .= "<form action=\"modules.php?name=@@@Surveys\" method=\"post\">";
   $content .= "<input type=\"hidden\" name=\"pollID\" value=\"".$pollID."\">";
   $content .= "<input type=\"hidden\" name=\"forwarder\" value=\"".$url."\">";
   $row2 = $db->sql_fetchrow($db->sql_query("SELECT pollTitle, voters FROM ".$prefix."_poll_desc WHERE pollID='$pollID'"));
   $pollTitle = filter($row2['pollTitle'], "nohtml");
   $voters = intval($row2['voters']);
   $boxTitle = _SURVEY;
   $content .= "<span class=\"content\"><strong>$pollTitle</strong></span><br><br>\n";
   $content .= "<table border=\"0\" width=\"100%\">";
   for($i = 1; $i <= 12; $i++) {
      $row3 = $db->sql_fetchrow($db->sql_query("SELECT pollID, optionText, optionCount, voteID FROM ".$prefix."_poll_data WHERE (pollID='$pollID') AND (voteID='$i')"));
      if(isset($row3)) {
         $optionText = $row3['optionText'];
         if ($optionText != "") {
            $content .= "<tr><td valign=\"top\"><input type=\"radio\" name=\"voteID\" value=\"".$i."\"></td><td width=\"100%\"><span class=\"content\">$optionText</span></td></tr>\n";
         }
      }
   }
   $content .= "</table><br><center><span class=\"content\"><input type=\"submit\" value=\""._VOTE."\"></span><br>";
   if (is_user($user)) {
      cookiedecode($user);
           getusrinfo($user);
   }
   $sum = 0;
   for($i = 0; $i < 12; $i++) {
      $row4 = $db->sql_fetchrow($db->sql_query("SELECT optionCount FROM ".$prefix."_poll_data WHERE (pollID='$pollID') AND (voteID='$i')"));
      $optionCount = intval($row4['optionCount']);
      $sum = (int)$sum+$optionCount;
   }

          if (!isset($mode) OR empty($mode)) {
            if(isset($userinfo['umode'])) {
              $mode = $userinfo['umode'];
            } else {
              $mode = "thread";
            }
          }
          if (!isset($order) OR empty($order)) {
            if(isset($userinfo['uorder'])) {
              $order = $userinfo['uorder'];
            } else {
              $order = 0;
            }
          }
          if (!isset($thold) OR empty($thold)) {
            if(isset($userinfo['thold'])) {
              $thold = $userinfo['thold'];
            } else {
              $thold = 0;
            }
          }
    $r_options = "";
    $r_options .= "&amp;mode=".$mode;
    $r_options .= "&amp;order=".$order;
    $r_options .= "&amp;thold=".$thold;
   $content .= "<br><span class=\"content\"><a href=\"modules.php?name=@@@Surveys&amp;op=results&amp;pollID=".$pollID.$r_options."\"><strong>"._RESULTS."</strong></a><br><a href=\"modules.php?name=@@@Surveys\"><strong>"._POLLS."</strong></a><br>";
   if ($pollcomm) {
      $numcom = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_pollcomments WHERE pollID='$pollID'"));
      $content .= "<br>"._VOTES.": <strong>".intval($sum)."</strong> <br> "._PCOMMENTS." <strong>".intval($numcom)."</strong>\n\n";
   } else {
      $content .= "<br>"._VOTES." <strong>".intval($sum)."</strong>\n\n";
   }
   $content .= "</span></center></form>\n\n";
}
// stefvar fin n'a pas voté
}
}
?>

Il me reste maintenant à le fin