This commit is contained in:
Bertrand 2012-06-19 19:55:40 +02:00
commit 67cee37ab4
6 changed files with 111 additions and 62 deletions

View File

@ -65,7 +65,11 @@ class Question
public function get_writer() public function get_writer()
{ {
return User::getUser($this->writer); $u = User::getUser($this->writer);
if (isset($u))
return $u;
else
return User::getUser("nemubot");
} }
public function get_validator() public function get_validator()
@ -140,6 +144,11 @@ class Question
$this->reported = $reported; $this->reported = $reported;
} }
public function isReported()
{
return $this->reported;
}
public function getId() public function getId()
{ {
return $this->id; return $this->id;

View File

@ -53,8 +53,8 @@
<h3>Confirmer votre question</h3> <h3>Confirmer votre question</h3>
<p> <p>
Une fois la question ajoutée, un email vous a été envoyé pour que Une fois la question ajoutée, un email vous sera envoyé pour que
vous confirmiez qu'il s'agit bien de vous. Cliquez sur le lien vous confirmiez qu'il s'agisse bien de vous. Cliquez sur le lien
pour confirmer. pour confirmer.
</p> </p>
@ -79,7 +79,7 @@
Ce champ est à titre indicatif. Il va permettre à la personne Ce champ est à titre indicatif. Il va permettre à la personne
qui valide votre question d'aller vérifier par lui même la qui valide votre question d'aller vérifier par lui même la
véracité de votre réponse ; et il permet également de filtrer véracité de votre réponse ; et il permet également de filtrer
les questions en fonction des matière que chacun souhaite réviser. les questions en fonction des matières que chacun souhaite réviser.
</p> </p>
</aside> </aside>
@ -100,7 +100,7 @@ foreach($cs as $c)
<img src="left_triangle2.gif" id="arrow2" alt=""> <img src="left_triangle2.gif" id="arrow2" alt="">
<h3>La question</h3> <h3>La question</h3>
<p> <p>
La question sera afficher sur 1 ligne. Donc pas la peine de La question sera affichée sur une ligne. Donc pas la peine de
faire de retour à la ligne. faire de retour à la ligne.
<p> <p>
</aside> </aside>

View File

@ -29,10 +29,11 @@ else
<label for="filter">Filter par code de cours :</label> <input type="text" id="filter" name="filter" value="<?php echo $filter; ?>"> <input type="submit" value="Filtrer"> <label for="filter">Filter par code de cours :</label> <input type="text" id="filter" name="filter" value="<?php echo $filter; ?>"> <input type="submit" value="Filtrer">
</form> </form>
<a href="?">Liste des questions non-validées</a> :: <a href="?">Liste des questions non-validées</a> ::
<a href="?<?php if (isset($_GET["valid"])) echo "valid&amp;"; ?>report">Liste des questions rapportées</a> ::
<a href="?valid">Liste des questions validées</a> :. <a href="?valid">Liste des questions validées</a> :.
</article> </article>
<article id="allQuestions"> <article id="allQuestions">
<h2>Liste de toutes les questions <?php if (!isset($_GET["valid"])) echo "non-"; ?>validées</h2> <h2>Liste de toutes les questions <?php if (!isset($_GET["valid"])) echo "non-"; ?>validées<?php if (isset($_GET["report"])) echo " rapportées"; ?></h2>
<table> <table>
<thead> <thead>
<tr> <tr>
@ -54,7 +55,7 @@ foreach($file->get_questions() as $q)
{ {
if (!isset($_GET["valid"])) if (!isset($_GET["valid"]))
{ {
if ($q->isValidated()) if ($q->isValidated() && !$q->isReported())
continue; continue;
} }
else else
@ -63,6 +64,12 @@ foreach($file->get_questions() as $q)
continue; continue;
} }
if (isset($_GET["report"]))
{
if (!$q->isReported())
continue;
}
if (!empty($filter) && $q->getCourse()->getCode() != $filter) if (!empty($filter) && $q->getCourse()->getCode() != $filter)
continue; continue;
@ -83,6 +90,7 @@ if (!empty($_SESSION["connected"]))
<form method="post" action="confirmation.php"><input type="hidden" name="id" value="<?php echo $id ?>"><input type="submit" value="Revalider"></form> <form method="post" action="confirmation.php"><input type="hidden" name="id" value="<?php echo $id ?>"><input type="submit" value="Revalider"></form>
<form method="get" action="changeQuestion.php"><input type="hidden" name="id" value="<?php echo $id ?>"><input type="submit" value="Modifier"></form> <form method="get" action="changeQuestion.php"><input type="hidden" name="id" value="<?php echo $id ?>"><input type="submit" value="Modifier"></form>
<form method="post" action="?del" onsubmit="return confirm('Êtes-vous sûr de vouloir supprimer cette question ?');"><input type="hidden" name="id" value="<?php echo $id ?>"><input type="submit" value="Supprimer"></form> <form method="post" action="?del" onsubmit="return confirm('Êtes-vous sûr de vouloir supprimer cette question ?');"><input type="hidden" name="id" value="<?php echo $id ?>"><input type="submit" value="Supprimer"></form>
<form method="<?php if ($q->isReported()) echo "post"; else echo "get"; ?>" action="report.php"><input type="hidden" name="id" value="<?php echo $q->getReportId(); ?>"><input type="submit" value="<?php if ($q->isReported()) echo "Désignaler"; else echo "Signaler"; ?>"></form>
</div> </div>
<?php } ?> <?php } ?>
</td> </td>

View File

@ -5,26 +5,39 @@
include("Question.class.php"); include("Question.class.php");
include("QuestionsFile.class.php"); include("QuestionsFile.class.php");
if (isset($_POST['id'])) session_start();
if (isset($_GET['id']) || (isset($_POST['id']) && !empty($_SESSION["connected"])))
{ {
$id = $_POST['id']; if (isset($_POST['id']) && !empty($_SESSION["connected"]))
$id = $_POST['id'];
else
$id = $_GET['id'];
$file = new QuestionsFile("questions.xml"); $file = new QuestionsFile("questions.xml");
foreach($file->get_questions() as $q) foreach($file->get_questions() as $q)
{ {
if ($q->getReportId() == $id) if ($q->getReportId() == $id)
{ {
$q->setReported(); $qm = $file->get_question($q->getId());
$qm->setReported(!(isset($_POST['id']) && !empty($_SESSION["connected"])));
$id = null; $id = null;
$file->save();
break; break;
} }
} }
if (isset($id)) if (isset($id))
echo 'La question n\'a pas été trouvée'; echo 'La question n\'a pas été trouvée';
else if (isset($_POST['id']) && !empty($_SESSION["connected"]))
echo 'Le signalement de la question a bien été retiré';
else else
echo 'La question a été rapporté avec succès'; echo 'La question a été rapporté avec succès';
} }
else else
{
echo "Aucun identifiant n'a été passé à la page";
header("Location: ./"); header("Location: ./");
}
?></h2> ?></h2>
<p> <p>
Nemubot vous remercie de l'aider à améliorer la qualité de sa base de données.<br><br> Nemubot vous remercie de l'aider à améliorer la qualité de sa base de données.<br><br>

View File

@ -3,70 +3,84 @@
include("header.html"); include("header.html");
include("User.class.php"); include("User.class.php");
$email = $_POST['email']; if (count($_POST))
$login = $_POST['login'];
$user = User::new_User($email, $login);
$userList = User::getUsers();
$userList[] = $user;
User::setUsers($userList);
function mail_utf8($to, $subject = '(No subject)',
$message = '', $header = '')
{ {
$header_ = 'MIME-Version: 1.0' . "\r\n" . $email = $_POST['email'];
'Content-type: text/plain; charset=UTF-8' . "\r\n"; $login = $_POST['login'];
return (mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=',
$message, $header_ . $header));
}
$email = $_POST['email']; if (empty($email) || empty($login))
$subject = "[Nemubot] Confirmation d'inscription"; die("Veuillez remplir tous les champs avant de valider le formulaire.");
$headers = "From: Nemubot <bot@nemunai.re>\n";
$message = "Bonjour,\n"
."Vous avez demandé à être ajouté à la liste des participants "
."sur le site AskWeb.\n"
."Si c'est le cas, vous pouvez cliquer sur le lien suivant "
."pour confirmer :\n"
. "http://".$_SERVER["SERVER_NAME"] if (!preg_match("#^.+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,5}$#", $email))
. dirname($_SERVER["REQUEST_URI"]) . "/subscriptionConfirmation.php?id=" die("Votre adresse électronique ne semble pas valide.");
. $user->getId()
."\n\n Si ce n'est pas le cas, merci de supprimer cet email\n" $us = User::getUsers();
."Cordialement,\n\n"
."-- \nNemubot";
if (mail_utf8($email, $subject, $message, $headers)) $user = User::new_User($email, $login);
{
$message = true; if (array_key_exists($user->getId(), $us))
die("Un utilisateur avec la même adresse électronique existe déjà.");
function mail_utf8($to, $subject = '(No subject)',
$message = '', $header = '')
{
$header_ = 'MIME-Version: 1.0' . "\r\n" .
'Content-type: text/plain; charset=UTF-8' . "\r\n";
return (mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=',
$message, $header_ . $header));
}
$email = $_POST['email'];
$subject = "[Nemubot] Confirmation d'inscription";
$headers = "From: Nemubot <bot@nemunai.re>\n";
$message = "Bonjour,\n"
."Vous avez demandé à être ajouté à la liste des participants "
."sur le site AskWeb.\n"
."Si c'est le cas, vous pouvez cliquer sur le lien suivant "
."pour confirmer :\n"
. "http://".$_SERVER["SERVER_NAME"]
. dirname($_SERVER["REQUEST_URI"]) . "/subscriptionConfirmation.php?id="
. $user->getId()
."\n\n Si ce n'est pas le cas, merci de supprimer cet email\n"
."Cordialement,\n\n"
."-- \nNemubot";
if (mail_utf8($email, $subject, $message, $headers))
{
$us[] = $user;
User::setUsers($us);
$message = true;
}
else
{
$message = false;
}
} }
else else
{ header("Location: ./");
$message = false;
}
?> ?>
<section id="introduction"> <section id="introduction">
<article> <article>
<?php <?php
if ($message) if ($message) {
{
?> ?>
<h2>Merci</h2> <h2>Merci</h2>
<p> <p>
Un email a été envoyé à l'adresse mail que vous avez précisé. Un email a été envoyé à l'adresse mail que vous avez précisé.
Cliquez sur le lien contenu dans l'email pour confirmer votre inscription. Cliquez sur le lien contenu dans l'email pour confirmer votre inscription.
</p> </p>
<?php <?php
} else { } else {
?> ?>
<h2>ERREUR</h2> <h2>ERREUR</h2>
<p>Une erreur est survenue. Dommage.</p> <p>Une erreur est survenue. Dommage.</p>
<?php } ?> <?php } ?>
</article> </article>
</section> </section>

View File

@ -3,16 +3,20 @@
include ("header.html"); include ("header.html");
include("User.class.php"); include("User.class.php");
$id = $_GET['id']; $users = User::getUsers();
$user = User::getUser($id); if (!array_key_exists($_GET['id'], $users))
{
if ($user == null) $message = "unknown";
$message = false; }
else if (!$users[$_GET['id']]->isValidated())
{
$users[$_GET['id']]->set_validated(true);
$message = "ok";
}
else else
{ {
$user->set_validated(true); $message = "already";
$message = true;
} }
?> ?>
@ -28,6 +32,7 @@ else
<h2>Vous êtes déjà inscrit</h2> <h2>Vous êtes déjà inscrit</h2>
<?php } else {?> <?php } else {?>
<h2>Une erreur est survenue</h2> <h2>Une erreur est survenue</h2>
<?php } ?>
</article> </article>
</section> </section>