Compare commits
No commits in common. "c867505f42a9863f831c64971f48ba584ec946d5" and "06394bb1a85621f077e9ded67db238d8eb679901" have entirely different histories.
c867505f42
...
06394bb1a8
7 changed files with 16 additions and 167 deletions
74
api.php
74
api.php
|
@ -77,83 +77,11 @@
|
|||
|
||||
|
||||
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;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
11
bdd.php
11
bdd.php
|
@ -66,7 +66,7 @@ function ajouter_doc($request){
|
|||
function saveFilesFromPost($postData,$id_ensemble) {
|
||||
|
||||
global $conn;
|
||||
|
||||
|
||||
|
||||
// Check if the $_POST variable is set and contains files
|
||||
//echo(print_r($_FILES,true));
|
||||
|
@ -146,11 +146,10 @@ 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,document_id,duree) VALUES(?,?,?,?)';
|
||||
$conn->execute_query($sql,array($ex["commentaire_exo"],$id_ensemble,$document_id,intval($ex["duree"])));
|
||||
$sql= 'INSERT INTO exercices (commentaire_auteur,ensemble_id,duree) VALUES(?,?,?)';
|
||||
$conn->execute_query($sql,array($ex["commentaire_exo"],$id_ensemble,intval($ex["duree"])));
|
||||
|
||||
$id_exo = mysqli_insert_id($conn);
|
||||
|
||||
|
@ -220,7 +219,7 @@ function RechercheExercices($query, $length, $tags)
|
|||
if (!empty($tags)) {
|
||||
$tagConditions = array_map(function ($tag) {
|
||||
$tag = htmlspecialchars($tag);
|
||||
return "EXISTS (SELECT * FROM exercices_themes AS et INNER JOIN themes AS t ON et.exercice_id = t.id WHERE et.theme_id = t.id AND t.name = '$tag')";
|
||||
return "EXISTS (SELECT * FROM exercices_themes AS et INNER JOIN themes AS t ON et.exercice_id = t.id WHERE et.theme_id = t.id AND t.name = '$tag' AND)";
|
||||
}, $tags);
|
||||
|
||||
$conditions[] = implode(" AND ", $tagConditions);
|
||||
|
@ -261,4 +260,4 @@ function valider_ensemble($ensembleId) {
|
|||
$conn->execute_query($updateQuery);
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
47
ens.php
47
ens.php
|
@ -1,47 +0,0 @@
|
|||
<!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;
|
||||
*/
|
||||
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
</html>
|
38
index.php
38
index.php
|
@ -18,9 +18,9 @@
|
|||
|
||||
</div>
|
||||
|
||||
<form id="recherche_form">
|
||||
<form>
|
||||
<input type="text" id="recherche_input" placeholder="Rechercher une fiche, annale ...">
|
||||
<input type="text" id="themes_input" placeholder="themes (appuyez sur la touche entrée entre chaque thèmes)">
|
||||
<input type="text" id="themes_input" placeholder="themes séparés par une virgule">
|
||||
<input type="number" id="duree_input" placeholder="durée en minutes">
|
||||
</form>
|
||||
|
||||
|
@ -39,6 +39,7 @@
|
|||
data = await resp.json();
|
||||
console.log("test");
|
||||
if(data.status == 1){
|
||||
alert(1);
|
||||
document.getElementById("user_status").innerText = data["msg"];
|
||||
}
|
||||
}
|
||||
|
@ -56,33 +57,15 @@
|
|||
|
||||
async function rechercher(){
|
||||
var req = document.getElementById("recherche_input").value;
|
||||
var themes = [];
|
||||
Array.from(document.getElementsByClassName("theme")).forEach(function (el) {
|
||||
// on encode en url pour pouvoir le passer dans la requete GET
|
||||
themes.push(encodeURIComponent(el.innerText));
|
||||
});
|
||||
var duree =document.getElementById("duree_input").value
|
||||
|
||||
|
||||
|
||||
var url = "/annales/api.php/rechercher?req="+req;
|
||||
if(themes.toString() != ""){
|
||||
url = url +"&themes="+themes.toString();
|
||||
}
|
||||
|
||||
if(duree != ""){
|
||||
url = url +"duree="+duree;
|
||||
|
||||
}
|
||||
console.log(url);
|
||||
|
||||
resp = await fetch(url);
|
||||
resp = await fetch("/annales/api.php/rechercher?req="+req);
|
||||
|
||||
data = await resp.json();
|
||||
if(data.status == 1){
|
||||
data.resultats.forEach(doc => {
|
||||
const img = document.createElement("img");
|
||||
img.src = doc.upload_path;
|
||||
img.setAttribute("onclick","document.location.href='ens.php?ensemble_id="+doc.ensemble_id.toString()+"'");
|
||||
document.body.appendChild(img);
|
||||
});
|
||||
}
|
||||
|
@ -95,18 +78,9 @@
|
|||
rechercher();
|
||||
}
|
||||
}
|
||||
document.getElementById("themes_input").onkeydown =function(event) {
|
||||
if (event.key === "Enter"){
|
||||
var theme = document.createElement("div");
|
||||
theme.setAttribute("class","theme");
|
||||
theme.innerText = document.getElementById("themes_input").value;
|
||||
|
||||
document.getElementById("recherche_form").appendChild(theme);
|
||||
document.getElementById("themes_input").value = "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
</html>
|
||||
</html>
|
|
@ -20,8 +20,7 @@ $sql = "
|
|||
CREATE TABLE IF NOT EXISTS ensembles (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
commentaire_auteur TEXT,
|
||||
valide BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
corrige_inclu BOOLEAN NOT NULL DEFAULT FALSE
|
||||
valide BOOLEAN NOT NULL DEFAULT FALSE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS documents (
|
||||
|
@ -40,11 +39,8 @@ $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 (document_id) REFERENCES documents(id)
|
||||
|
||||
FOREIGN KEY (ensemble_id) REFERENCES ensembles(id)
|
||||
);
|
||||
|
||||
|
||||
|
|
|
@ -26,9 +26,8 @@ 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 minutes)
|
||||
(la durée est en secondes)
|
||||
|
||||
### 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:"ceci est un commenataire"},{duree:"15",themes:["elec analogique"],commentaire_exo:""}];
|
||||
let ex = [{duree:"10",themes:["algèbre","analyse"],commentaire_exo:"cci est un commenataire"},{duree:"15",themes:["elec analogique"],commentaire_exo:""}];
|
||||
formData.append("exercices",JSON.stringify(ex))
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue