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

View File

@ -53,8 +53,8 @@
<h3>Confirmer votre question</h3>
<p>
Une fois la question ajoutée, un email vous a été envoyé pour que
vous confirmiez qu'il s'agit bien de vous. Cliquez sur le lien
Une fois la question ajoutée, un email vous sera envoyé pour que
vous confirmiez qu'il s'agisse bien de vous. Cliquez sur le lien
pour confirmer.
</p>
@ -79,7 +79,7 @@
Ce champ est à titre indicatif. Il va permettre à la personne
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
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>
</aside>
@ -100,7 +100,7 @@ foreach($cs as $c)
<img src="left_triangle2.gif" id="arrow2" alt="">
<h3>La question</h3>
<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.
<p>
</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">
</form>
<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> :.
</article>
<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>
<thead>
<tr>
@ -54,7 +55,7 @@ foreach($file->get_questions() as $q)
{
if (!isset($_GET["valid"]))
{
if ($q->isValidated())
if ($q->isValidated() && !$q->isReported())
continue;
}
else
@ -63,6 +64,12 @@ foreach($file->get_questions() as $q)
continue;
}
if (isset($_GET["report"]))
{
if (!$q->isReported())
continue;
}
if (!empty($filter) && $q->getCourse()->getCode() != $filter)
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="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="<?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>
<?php } ?>
</td>

View File

@ -5,26 +5,39 @@
include("Question.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");
foreach($file->get_questions() as $q)
{
if ($q->getReportId() == $id)
{
$q->setReported();
$qm = $file->get_question($q->getId());
$qm->setReported(!(isset($_POST['id']) && !empty($_SESSION["connected"])));
$id = null;
$file->save();
break;
}
}
if (isset($id))
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
echo 'La question a été rapporté avec succès';
}
else
{
echo "Aucun identifiant n'a été passé à la page";
header("Location: ./");
}
?></h2>
<p>
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("User.class.php");
$email = $_POST['email'];
$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 = '')
if (count($_POST))
{
$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'];
$login = $_POST['login'];
$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"
if (empty($email) || empty($login))
die("Veuillez remplir tous les champs avant de valider le formulaire.");
. "http://".$_SERVER["SERVER_NAME"]
. dirname($_SERVER["REQUEST_URI"]) . "/subscriptionConfirmation.php?id="
. $user->getId()
if (!preg_match("#^.+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,5}$#", $email))
die("Votre adresse électronique ne semble pas valide.");
."\n\n Si ce n'est pas le cas, merci de supprimer cet email\n"
."Cordialement,\n\n"
."-- \nNemubot";
$us = User::getUsers();
if (mail_utf8($email, $subject, $message, $headers))
{
$message = true;
$user = User::new_User($email, $login);
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
{
$message = false;
}
header("Location: ./");
?>
<section id="introduction">
<article>
<?php
if ($message)
{
if ($message) {
?>
<h2>Merci</h2>
<p>
Un email a été envoyé à l'adresse mail que vous avez précisé.
<p>
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.
</p>
</p>
<?php
} else {
} else {
?>
<h2>ERREUR</h2>
<p>Une erreur est survenue. Dommage.</p>
<?php } ?>
<p>Une erreur est survenue. Dommage.</p>
<?php } ?>
</article>
</section>

View File

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