Can report a question

This commit is contained in:
Némunaire 2012-06-19 19:13:44 +02:00
parent 63e14532f8
commit 9bbdfffe26
4 changed files with 40 additions and 10 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>