 |
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
petitjo86 Spécialiste


Inscrit le: Nov 09, 2006 Messages: 749 Localisation: Châtellerault
|
Posté le: 24 Nov 2006, 23:13 Sujet du message: Pour les Sondages |
|
|
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 |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8261 Localisation: France Corse Ventiseri
|
Posté le: 24 Nov 2006, 23:43 Sujet du message: Re : Pour les Sondages |
|
|
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 |
|
petitjo86 Spécialiste


Inscrit le: Nov 09, 2006 Messages: 749 Localisation: Châtellerault
|
Posté le: 25 Nov 2006, 0:06 Sujet du message: Re : Pour les Sondages |
|
|
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
@+ Petit Jo |
|
|
|
| Revenir en haut de page |
|
petitjo86 Spécialiste


Inscrit le: Nov 09, 2006 Messages: 749 Localisation: Châtellerault
|
Posté le: 25 Nov 2006, 0:15 Sujet du message: Re : Pour les Sondages |
|
|
Re,
Zut ça ne marche pas 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 .
Je regarderais demain si je peux trouver quelque chose à modifié, mais la c'est moins sur, je ne suis pas trop doué
@+ Petit Jo |
|
|
|
| Revenir en haut de page |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8261 Localisation: France Corse Ventiseri
|
|
| Revenir en haut de page |
|
petitjo86 Spécialiste


Inscrit le: Nov 09, 2006 Messages: 749 Localisation: Châtellerault
|
Posté le: 25 Nov 2006, 11:40 Sujet du message: Re : Pour les Sondages |
|
|
Bonjour,
Ou as tu vu qu'il manqué des Copyrights en cherchant on trouve parfois
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 |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8261 Localisation: France Corse Ventiseri
|
Posté le: 25 Nov 2006, 11:47 Sujet du message: Re : Pour les Sondages |
|
|
Re,
Farceur va ......... mais je "chouffe" .
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 |
|
petitjo86 Spécialiste


Inscrit le: Nov 09, 2006 Messages: 749 Localisation: Châtellerault
|
Posté le: 25 Nov 2006, 12:08 Sujet du message: Re : Pour les Sondages |
|
|
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 , le respect du travail des autres
Sinon merci, pour la futur modif, en attendant je vais modifié la valeur, ce seras toujours ça , content de moi j'ai réussi à mettre le doigt dessus , je suis pas trop nul
@+ Petit Jo |
|
|
|
| Revenir en haut de page |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8261 Localisation: France Corse Ventiseri
|
Posté le: 25 Nov 2006, 13:47 Sujet du message: Re : Pour les Sondages |
|
|
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 |
|
petitjo86 Spécialiste


Inscrit le: Nov 09, 2006 Messages: 749 Localisation: Châtellerault
|
Posté le: 25 Nov 2006, 14:07 Sujet du message: Re : Pour les Sondages |
|
|
Re,
Ok, c'est parti je vote à fond, on va bien voir
Quelle réactivité, je suis impressionné
Merci,
@+ Petit Jo |
|
|
|
| Revenir en haut de page |
|
petitjo86 Spécialiste


Inscrit le: Nov 09, 2006 Messages: 749 Localisation: Châtellerault
|
Posté le: 25 Nov 2006, 14:57 Sujet du message: Re : Pour les Sondages |
|
|
Re,
Donc après une campagne de vote intensif , je me prépare pour l'année prochaine , 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 .
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
Merci, pour ce magnifique travail
@+ Petit Jo |
|
|
|
| Revenir en haut de page |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8261 Localisation: France Corse Ventiseri
|
Posté le: 25 Nov 2006, 15:08 Sujet du message: Re : Pour les Sondages |
|
|
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 |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8261 Localisation: France Corse Ventiseri
|
Posté le: 25 Nov 2006, 16:57 Sujet du message: Re : Pour les Sondages |
|
|
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 .= "&mode=".$userinfo['umode']; }
if (isset($userinfo['uorder'])) { $r_options .= "&order=".$userinfo['uorder']; }
if (isset($userinfo['thold'])) { $r_options .= "&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'> $pltitle ($plvoters "._LVOTES.")<br><br>";
} else {
echo "<img src='images/arrow.gif' border='0'> <a href='modules.php?name=$module_name&op=results&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&op=results&pollID=$pollID&mode=".$userinfo['umode']."&order=".$userinfo['uoder']."&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&op=results&pollID=$pollID");
} else {
Header("Location: modules.php?name=$module_name&op=results&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 .= "&mode=".$userinfo['umode']; }
if (isset($userinfo['uorder'])) { $r_options .= "&order=".$userinfo['uorder']; }
if (isset($userinfo['thold'])) { $r_options .= "&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>·</big></strong> <a href=\"modules.php?name=$module_name&pollID=$id\">$pollTitle</a> ";
if (is_admin($admin)) {
$editing = " - <a href=\"".$admin_file.".php?op=polledit&pollID=$id\">Edit</a>";
} else {
$editing = "";
}
echo "(<a href=\"modules.php?name=$module_name&op=results&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>·</big></strong> <a href=\"modules.php?name=$module_name&pollID=$id\">$pollTitle</a> ";
if (is_admin($admin)) {
$editing = " - <a href=\"".$admin_file.".php?op=polledit&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&op=results&pollID=$id$r_options\">"._RESULTS."</a> - $sum "._LVOTES."$editing)<br>\n"
.""._ATTACHEDTOARTICLE." <a href=\"modules.php?name=@@@News&file=article&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&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&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 .= "&mode=".$mode;
$r_options .= "&order=".$order;
$r_options .= "&thold=".$thold;
$content .= "<br><span class=\"content\"><a href=\"modules.php?name=@@@Surveys&op=results&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 .= "&mode=".$mode;
$r_options .= "&order=".$order;
$r_options .= "&thold=".$thold;
$content .= "<br><span class=\"content\"><a href=\"modules.php?name=@@@Surveys&op=results&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&op=results&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 .= "&mode=".$mode;
$r_options .= "&order=".$order;
$r_options .= "&thold=".$thold;
$content .= "<br><span class=\"content\"><a href=\"modules.php?name=@@@Surveys&op=results&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 | | |