#contenu col#inscriptionColonneValeur {
width: 70%;
}
-#contenu #formulaireJeuxJoues .aVote {
+#contenu #formulaireJeuxJoues .aVote, #contenu #formulaireJeuxJoues .aVote a {
color: #ffff00;
}
+#contenu #formulaireJeuxJoues a {
+ padding-right: 12px;
+ background:transparent url(../images/lien_externe.png) no-repeat scroll right center;
+}
+#contenu #formulaireJeuxJoues .aVote a {
+ color: #ffff00;
+}
+#contenu #formulaireJeuxJoues .aVote a:hover {
+ color: #ffffaa;
+}
#contenu #formulaireInscription p {
margin-top: 1px;
margin-bottom: 0px;
border: #ffff00 1px solid;
}
+form input.info {
+ color: #999999;
+}
+
/***** La boite d'information (s'apparente à une MessageBox) *****/
div#info {
text-align: center;
echo '<meta name="cout_total" content="'.$config->get('cout_total').'" />';
$nbPeriodes = pg_fetch_array(pg_query("SELECT COUNT(*) FROM periodes"));
echo '<meta name="nb_periodes" content="'. $nbPeriodes[0] .'" />';
+ echo '<meta name="estLogge" content="'. $participant->existe() .'" />';
?>
<title>Corcelles-Lan 8</title>
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" ></link>
var cl7 = {};
cl7.verification_formulaire_inscription = function(util) {
+ var estLogge = $('meta[name="estLogge"]').attr('content');
+
if ($('#formulaireInscription input[name="pseudo"]').val() === "") {
util.messageDialogue("Le pseudo ne peut pas être vide");
return false;
}\r
- if ($('#formulaireInscription input[name="pass1"]').val() === "" &&\r
+ if (!estLogge && $('#formulaireInscription input[name="pass1"]').val() === "" &&\r
$('#formulaireInscription input[name="pass2"]').val() === "") {\r
util.messageDialogue("Le password ne peut pas être vide");\r
return false; \r
util.messageDialogue("Les passwords ne correspondent pas");\r
return false; \r
}\r
- if ($('#formulaireInscription input[name="pass1"]').val().length < 3) {\r
+ if ((!estLogge || $('#formulaireInscription input[name="pass1"]').val() != '') && $('#formulaireInscription input[name="pass1"]').val().length < 3) {\r
util.messageDialogue("La taille de password doit être d'au moins 3 caractères");\r
return false;\r
}\r
$(document).ready(
function() {
var util = new cl7.Util();
+
+ // Check du formulaire d'inscription.
$('form#formulaireInscription').submit(function() {
return cl7.verification_formulaire_inscription(util);
});
+ // Affichage d'un message si disponible au chargement de la page.
var messageUtilisateur = $('meta[name="messageUtilisateur"]').attr('content');
if (messageUtilisateur !== undefined) {
util.messageDialogue(messageUtilisateur);
}
- \r
+
+ // Met à jour les champs en rapport avec le clan existant choisi.\r
$('form#formulaireInscription select[name="clanChoix"]').change(function() { \r
if ($(this).val() === '0') {\r
return;\r
// met à jour le prix d'inscription
cl7.maj_prix_inscription();\r
\r
- // permet d'éviter de faire plus de choix qu'il n'en faut sur la page des jeux joués\r
+ // Permet d'éviter de faire plus de choix qu'il n'en faut sur la page des jeux joués.\r
var nbVotesMax = 3;\r
var coches = [];\r
$('#formulaireJeuxJoues input[name="votes[]"]:checked').each(function() {\r
}\r
}\r
});
+
+ // Enlève ou affiche les informations (p.e. '<nom>') concernant les champs des formulaires.
+ $('form input.info').focus(function() {
+ if (!$(this).hasClass('info'))
+ return;
+
+ var value = $(this).val();
+ $(this).blur(function() {
+ if ($(this).val().trim() === '') {
+ $(this).val(value).addClass('info');
+ $(this).unbind('blur');
+ }
+ });
+
+ $(this).val('').removeClass('info');
+ });
+
+ $('form').submit(function() {
+ $('input.info', this).val('');
+ });
}
);
$this->set_periodes($id);
pg_query("COMMIT");
- $this->participant = new participant($_POST['pseudo'], $_POST['pass1']);
+ $this->participant->chargerInfos($_POST['pseudo'], $_POST['pass1']);
setcookie("COOKIE_INFO_PARTICIPANT", $this->participant->info->id, time() + 31104000);
$this->nouvel_inscrit = TRUE;
}
return;
$this->traiter_donnees_inscription();
- if (!$this->login_deja_pris() && $this->donnees_inscription_valides())
+ if (!$this->login_deja_pris() && $this->donnees_inscription_valides(true))
{
pg_query("BEGIN");
pg_query_params("UPDATE participants SET pseudo = $1 WHERE id = $2", array($_POST['pseudo'], $this->participant->info->id));
- pg_query_params("UPDATE participants SET password = $1 WHERE id = $2", array(sha1($_POST['pass1']), $this->participant->info->id));
+ if ($_POST['pass1'] != '') // Uniquement si un nouveau password est donné.
+ pg_query_params("UPDATE participants SET password = $1 WHERE id = $2", array(sha1($_POST['pass1']), $this->participant->info->id));
pg_query_params("UPDATE participants SET clan_nom = $1 WHERE id = $2", array($_POST['clan_nom'], $this->participant->info->id));
pg_query_params("UPDATE participants SET clan_tag = $1 WHERE id = $2", array($_POST['clan_tag'], $this->participant->info->id));
pg_query_params("UPDATE participants SET nom = $1 WHERE id = $2", array($_POST['nom'], $this->participant->info->id));
$jeu = trim($_POST['jeu']);
if ($jeu !== '')
{
- if(@pg_query_params("INSERT INTO jeux (nom) VALUES ($1)", array($jeu)))
+ if(@pg_query_params("INSERT INTO jeux (participant_id, nom, type, url) VALUES ($1, $2, $3, $4)", array($this->participant->info->id, $jeu, $_POST['type'], $_POST['url'])))
{
$row = pg_fetch_row(pg_query("SELECT LASTVAL()"));
$id = $row[0];
/**
* Renvoie TRUE si les données d'une inscription sont valides (POST).
+ * $maj : égal 'TRUE' si c'est une mise à jour, dans ce cas le password est traité différement
*/
- private function donnees_inscription_valides()
+ private function donnees_inscription_valides($maj = FALSE)
{
return
- $_POST['pseudo'] != "" &&
- $_POST['pass1'] != "" &&
+ $_POST['pseudo'] != "" &&
+ ($maj || $_POST['pass1'] != "") &&
$_POST['pass1'] == $_POST['pass2'] &&
- strlen($_POST['pass1']) >= 3 &&
+ (($maj && $_POST['pass1'] == "") || strlen($_POST['pass1']) >= 3) &&
$_POST['nom'] != "" &&
$_POST['prenom'] != "" &&
$_POST['e_mail'] != "";
password <span class="miniInfo">(pour pouvoir par la suite modifier mes infos)</span>
</td>
<td>
- <input type="password" size="10" maxlength="10" name="pass1" value="<?=$participant->existe() ? $participant->info->password : $_POST["pass1"]?>" />
- re: <input type="password" maxlength="10" size="10" name="pass2" value="<?=$participant->existe() ? $participant->info->password : $_POST["pass2"]?>" />
+ <input type="password" size="10" maxlength="10" name="pass1" value="<?=$participant->existe() ? '': $_POST["pass1"]?>" />
+ re: <input type="password" maxlength="10" size="10" name="pass2" value="<?=$participant->existe() ? '' : $_POST["pass2"]?>" />
</td>
</tr>
<tr>
<form id="formulaireJeuxJoues" method="post" action="index.php?page=jeux_joues">\r
<p><input type="hidden" name="set_jeux_joues" value="1" /></p>\r
<table>\r
- <tr>', ($vote_possible ? '<th></th>' : ''), '<th>Votes</th><th>Jeux</th></tr>';\r
+ <tr>', ($vote_possible ? '<th></th>' : ''), '<th>Votes</th><th>Nom</th><th>Type</th><th></th></tr>';\r
# /!\ Attention, requête un poil tricky :
# On souhait avoir une liste des jeux joués avec pour chaque tuple :
SELECT
jeux.id,
jeux.nom,
+ jeux.type,
+ jeux.url,
array_agg(jeux_choisis.participant_id) AS participants,
(COUNT(*) + (CASE WHEN bool_and(jeux_choisis.participant_id is null) THEN -1 ELSE 0 END)) as nb_vote
FROM
jeux
LEFT JOIN jeux_choisis ON jeux.id = jeux_choisis.jeu_id
- GROUP BY jeux.id, jeux.nom
+ GROUP BY jeux.id, jeux.nom, jeux.type, jeux.url
ORDER BY nb_vote DESC, jeux.nom\r
");\r
\r
$a_vote = in_array($participant->info->id, $participants);\r
}\r
+
+ $a_url = preg_match('/^https?:\/\/.+$/', $jeu->url);
\r
echo '<tr>',\r
$vote_possible ? '<td><input type="checkbox" name="votes[]" '. ($a_vote ? 'checked="checked"' : '') .' value="'.$jeu->id.'" /></td>' : '',\r
'<td>' . $jeu->nb_vote . '</td>',\r
- '<td ' . ($a_vote ? 'class="aVote" ': '').'>' . traitement_pre_affichage($jeu->nom) . '</td></tr>';\r
+ '<td ' . ($a_vote ? 'class="aVote" ': '').'>' . ($a_url ? '<a href="'. htmlentities($jeu->url) .'">' : '') . traitement_pre_affichage($jeu->nom) . ($a_url ? '</a>' : '') . '</td>',
+ '<td ' . ($a_vote ? 'class="aVote" ': '').'>' . traitement_pre_affichage($jeu->type) . '</td>',
+ '<td>x</td></tr>';\r
}\r
\r
echo '\r
\r
if ($vote_possible)\r
echo '\r
- <p>Autre : <input type="text" maxlength="50" name="jeu" /></p>\r
+ <p>Ajouter :
+ <input class="info" type="text" size="20" maxlength="50" name="jeu" value="<nom>" >
+ <input class="info" type="text" size="10" maxlength="100" name="type" value="<type>" />
+ <input class="info" type="text" size="20" maxlength="200" name="url" value="<URL>" />
+ </p>\r
<p><input type="submit" value="Voter" /></p>';\r
\r
echo '</form>';\r
*/
public function Participant($v1=NULL, $v2=NULL)
{
+ $this->authentifier($v1, $v2);
+ }
+
+ /**
+ * Est-ce que le participant existe ? C-à-d qu'il est inscrit.
+ */
+ public function existe()
+ {
+ return $this->id != 0;
+ }
+
+ private function authentifier($v1=NULL, $v2=NULL)
+ {
# Aucunes valeurs transmise => ce n'est pas un participant valide.
if ($v1 == NULL && $v2 == NULL)
return;
$this->id = pg_fetch_object($res)->id;
$this->chargerInfos();
}
- }
-
- /**
- * Est-ce que le participant existe ? C-à-d qu'il est inscrit.
- */
- public function existe()
- {
- return $this->id != 0;
}
- public function chargerInfos()
+ public function chargerInfos($v1=NULL, $v2=NULL)
{
+ $this->authentifier($v1, $v2);
+
if (!$this->existe())
return;
PRIMARY KEY (id)
);
");
- pg_query("
- CREATE TABLE jeux (
- id serial NOT NULL,
- nom varchar(200) NOT NULL,
- PRIMARY KEY (id),
- UNIQUE (nom)
- );
- ");
// participants.password est un hash calculé à l'aide de sha1().
pg_query("
CREATE TABLE participants (
FOREIGN KEY (pizza) REFERENCES pizzas (id) ON DELETE SET NULL ON UPDATE SET NULL
);
");
+ pg_query("
+ CREATE TABLE jeux (
+ id serial NOT NULL,
+ participant_id int default NULL,
+ nom varchar(200) NOT NULL,
+ type varchar(100) DEFAULT NULL,
+ url varchar(200) DEFAULT NULL,
+ PRIMARY KEY (id),
+ UNIQUE (nom),
+ FOREIGN KEY (participant_id) REFERENCES participants (id) ON DELETE SET NULL ON UPDATE SET NULL
+ );
+ ");
pg_query("
CREATE TABLE jeux_choisis (
participant_id int NOT NULL,