forked from mougnibas/archinsa
voilà c'est comme ça qu'on fait là
This commit is contained in:
parent
0cff7402b3
commit
c867505f42
6 changed files with 127 additions and 83 deletions
72
api.php
72
api.php
|
@ -76,12 +76,84 @@
|
|||
}
|
||||
|
||||
|
||||
break;
|
||||
|
||||
case 'decomposer_ensemble':
|
||||
|
||||
// Récupération de l'ID de l'ensemble et du thème depuis l'URL ou autrement
|
||||
$ensembleId = isset($_GET['ensemble_id']) ? intval($_GET['ensemble_id']) : '';
|
||||
|
||||
// Vérification de la validité de l'ID de l'ensemble
|
||||
if (!empty($ensembleId)) {
|
||||
// Préparation de la requête SQL pour obtenir les informations sur l'ensemble
|
||||
$sqlEnsemble = 'SELECT * FROM ensembles WHERE id = ?';
|
||||
$stmtEnsemble = $conn->prepare($sqlEnsemble);
|
||||
$stmtEnsemble->bind_param('i', $ensembleId);
|
||||
$stmtEnsemble->execute();
|
||||
$resultEnsemble = $stmtEnsemble->get_result();
|
||||
$ensemble = $resultEnsemble->fetch_assoc();
|
||||
|
||||
if ($ensemble && $ensemble['valide'] == true) {
|
||||
|
||||
// Préparation de la requête SQL pour obtenir les informations sur les exercices sélectionnés
|
||||
$sqlDocu = "SELECT * FROM documents WHERE ensemble_id=?";
|
||||
$stmtDocu = $conn->prepare($sqlDocu);
|
||||
$stmtDocu->bind_param('i', $ensembleId);
|
||||
$stmtDocu->execute();
|
||||
$resultDocu = $stmtDocu->get_result();
|
||||
|
||||
$ensemble["documents"] = array();
|
||||
|
||||
while ($doc = $resultDocu->fetch_assoc()) {
|
||||
|
||||
switch ($doc['type']) {
|
||||
case 1:
|
||||
|
||||
// on va maintenant prendre chaque exercice un par un
|
||||
// et afficher les bonnes infos :
|
||||
|
||||
$sqlExos = "SELECT * FROM exercices WHERE document_id=?";
|
||||
$stmtExos = $conn->prepare($sqlExos);
|
||||
|
||||
$stmtExos->bind_param('i', $doc["id"]);
|
||||
$stmtExos->execute();
|
||||
$resultExos = $stmtExos->get_result();
|
||||
$doc["exercices"] = array();
|
||||
|
||||
while ($exo = $resultExos->fetch_assoc()) {
|
||||
array_push($doc["exercices"],$exo);
|
||||
}
|
||||
|
||||
array_push($ensemble["documents"],$doc);
|
||||
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
echo(json_encode(["status"=>"1","msg"=>$ensemble]));
|
||||
|
||||
|
||||
}else{
|
||||
echo(json_encode(['status'=> '2','msg'=> "Vous devez spécifier un indetifiant d'ensemble valide dans votre requête."]));
|
||||
|
||||
}
|
||||
|
||||
}else{
|
||||
echo(json_encode(['status'=> '2','msg'=> "Vous devez spécifier un indetifiant d'ensemble dans votre requête."]));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
echo(json_encode(['status'=> '2','msg'=> "Ce point d'arrivée n'existe pas dans l'api."]));
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
5
bdd.php
5
bdd.php
|
@ -146,10 +146,11 @@ function saveFilesFromPost($postData,$id_ensemble) {
|
|||
if($safe_type == 1){
|
||||
|
||||
$exercices = json_decode($postData['exercices'],true);
|
||||
$document_id = mysqli_insert_id($conn);
|
||||
foreach ($exercices as $key => $ex) {
|
||||
// premièrement, on enregistre l'exercice
|
||||
$sql= 'INSERT INTO exercices (commentaire_auteur,ensemble_id,duree) VALUES(?,?,?)';
|
||||
$conn->execute_query($sql,array($ex["commentaire_exo"],$id_ensemble,intval($ex["duree"])));
|
||||
$sql= 'INSERT INTO exercices (commentaire_auteur,ensemble_id,document_id,duree) VALUES(?,?,?,?)';
|
||||
$conn->execute_query($sql,array($ex["commentaire_exo"],$id_ensemble,$document_id,intval($ex["duree"])));
|
||||
|
||||
$id_exo = mysqli_insert_id($conn);
|
||||
|
||||
|
|
116
ens.php
116
ens.php
|
@ -1,81 +1,47 @@
|
|||
<?php
|
||||
include("session_verif.php");
|
||||
include("test_creds.php");
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Ensemble de documents</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
</body>
|
||||
|
||||
<script>
|
||||
|
||||
/*
|
||||
|
||||
pour les docs afficher un truc du même acabit que la php :
|
||||
if (strtolower($extension) === 'pdf'):
|
||||
echo "<embed src=\"{$doc['upload_path']}\" type=\"application/pdf\" width=\"100%\" height=\"600px\" />";
|
||||
elseif (in_array(strtolower($extension), ['jpg', 'jpeg', 'png', 'gif'])):
|
||||
echo "<img src=\"{$doc['upload_path']}\">";
|
||||
else:
|
||||
echo "<p>Oups ! Je ne sais pas afficher ce document :/ (Rales autant que tu veux je men fous) </p>".$doc['upload_path'];
|
||||
endif;
|
||||
*/
|
||||
|
||||
|
||||
try {
|
||||
$conn = new mysqli($servername, $username, $password,$dbname);
|
||||
} catch (Exception $e) {
|
||||
echo "Erreur : " . $e->getMessage();
|
||||
}
|
||||
|
||||
// Récupération de l'ID de l'ensemble et du thème depuis l'URL ou autrement
|
||||
$ensembleId = isset($_GET['ensemble_id']) ? intval($_GET['ensemble_id']) : '';
|
||||
$themeId = isset($_GET['theme_id']) ? intval($_GET['theme_id']) : '';
|
||||
|
||||
// Vérification de la validité de l'ID de l'ensemble
|
||||
if (!empty($ensembleId)) {
|
||||
// Préparation de la requête SQL pour obtenir les informations sur l'ensemble
|
||||
$sqlEnsemble = 'SELECT * FROM ensembles WHERE id = ?';
|
||||
$stmtEnsemble = $conn->prepare($sqlEnsemble);
|
||||
$stmtEnsemble->bind_param('i', $ensembleId);
|
||||
$stmtEnsemble->execute();
|
||||
$resultEnsemble = $stmtEnsemble->get_result();
|
||||
$ensemble = $resultEnsemble->fetch_assoc();
|
||||
|
||||
if ($ensemble && $ensemble['valide'] == true) {
|
||||
// Affichage de l'intitulé de l'ensemble
|
||||
echo '<h1>' . htmlspecialchars($ensemble['commentaire_auteur']) . '</h1>';
|
||||
|
||||
|
||||
// Préparation de la requête SQL pour obtenir les informations sur les exercices sélectionnés
|
||||
$sqlExos = 'SELECT e.*, t.name AS theme_name, te.id AS exotheme_id FROM exercices e '.
|
||||
'JOIN themes t ON e.ensemble_id = ?'.
|
||||
'LEFT JOIN exercices_themes te ON e.id = te.exercice_id ORDER BY te.id ASC';
|
||||
$stmtExos = $conn->prepare($sqlExos);
|
||||
echo($sqlExos);
|
||||
$stmtExos->bind_param('i', $ensembleId);
|
||||
$stmtExos->execute();
|
||||
$resultExos = $stmtExos->get_result();
|
||||
|
||||
while ($exo = $resultExos->fetch_assoc()) {
|
||||
switch ($exo['type']) {
|
||||
case 1:
|
||||
// Traiter les annales
|
||||
echo '<div class="document">';
|
||||
echo '<h2>' . htmlspecialchars($exo['titre']) . '</h2>';
|
||||
echo '<p>' . nl2br(htmlspecialchars($exo['commentaire_auteur'])) . '</p>';
|
||||
echo '<p>Durée estimée : ' . gmdate('H:i:s', $exo['duree']) . '</p>';
|
||||
echo '<a href="' . htmlspecialchars($exo['upload_path']) . '" target="_blank">Télécharger</a>';
|
||||
echo '</div>';
|
||||
break;
|
||||
case 2:
|
||||
// Traiter les textes à trous
|
||||
break;
|
||||
case 3:
|
||||
// Traiter les fiches de révision
|
||||
echo '<div class="document">';
|
||||
echo '<h2>' . htmlspecialchars($exo['titre']) . '</h2>';
|
||||
echo '<p>' . nl2br(htmlspecialchars($exo['commentaire_auteur'])) . '</p>';
|
||||
echo '<a href="' . htmlspecialchars($exo['upload_path']) . '" target="_blank">Télécharger</a>';
|
||||
echo '</div>';
|
||||
break;
|
||||
case 4:
|
||||
// Traiter les QCM
|
||||
echo "oui";
|
||||
break;
|
||||
// fetch l'api et afficher tout ce qu'elle nous rend
|
||||
function querystring(key) {
|
||||
var re=new RegExp('(?:\\?|&)'+key+'=(.*?)(?=&|$)','gi');
|
||||
var r=[], m;
|
||||
while ((m=re.exec(document.location.search)) != null) r[r.length]=m[1];
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
async function gen_contenu(){
|
||||
resp = await fetch("/annales/api.php/decomposer_ensemble?ensemble_id="+querystring("ensemble_id"));
|
||||
data = await resp.json();
|
||||
|
||||
if(data["status"] == 1){
|
||||
console.log(data);
|
||||
}
|
||||
} else {
|
||||
echo 'L\'ensemble demandé n\'existe pas ou il n\'est pas encore validé.';
|
||||
|
||||
}
|
||||
} else {
|
||||
echo 'Aucun identifiant d\'ensemble fourni.';
|
||||
}
|
||||
|
||||
// Fermeture de la connexion à la base de données
|
||||
$conn->close();
|
||||
?>
|
||||
|
||||
|
||||
?>
|
||||
</script>
|
||||
</html>
|
|
@ -20,7 +20,8 @@ $sql = "
|
|||
CREATE TABLE IF NOT EXISTS ensembles (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
commentaire_auteur TEXT,
|
||||
valide BOOLEAN NOT NULL DEFAULT FALSE
|
||||
valide BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
corrige_inclu BOOLEAN NOT NULL DEFAULT FALSE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS documents (
|
||||
|
@ -39,8 +40,11 @@ $sql = "
|
|||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
commentaire_auteur TEXT,
|
||||
ensemble_id INT,
|
||||
document_id INT,
|
||||
duree INT,
|
||||
FOREIGN KEY (ensemble_id) REFERENCES ensembles(id)
|
||||
FOREIGN KEY (ensemble_id) REFERENCES ensembles(id),
|
||||
FOREIGN KEY (document_id) REFERENCES documents(id)
|
||||
|
||||
);
|
||||
|
||||
|
||||
|
|
|
@ -26,8 +26,9 @@ D'autres fonctionnalités seront ajoutées petit à petit. (si vous avez des sug
|
|||
| id | INT | AUTO_INCREMENT, PRIMARY KEY |
|
||||
| commentaire_auteur | TEXT | |
|
||||
| ensemble_id | INT | FOREIGN KEY (ensemble_id) REFERENCES ensembles(id) |
|
||||
| document_id | INT | FOREIGN KEY (document_id) REFERENCES documents(id)
|
||||
| duree | INT | |
|
||||
(la durée est en secondes)
|
||||
(la durée est en minutes)
|
||||
|
||||
### Table: ensembles
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ function uploadFiles() {
|
|||
|
||||
formData.append("corrige_inclu",document.getElementById("corrige_checkbox").value);
|
||||
|
||||
let ex = [{duree:"10",themes:["algèbre","analyse"],commentaire_exo:"cci est un commenataire"},{duree:"15",themes:["elec analogique"],commentaire_exo:""}];
|
||||
let ex = [{duree:"10",themes:["algèbre","analyse"],commentaire_exo:"ceci est un commenataire"},{duree:"15",themes:["elec analogique"],commentaire_exo:""}];
|
||||
formData.append("exercices",JSON.stringify(ex))
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue