diff --git a/bdd.php b/bdd.php index a8018bb..305a175 100644 --- a/bdd.php +++ b/bdd.php @@ -10,7 +10,7 @@ $conn = new mysqli($servername, $username, $password,$dbname); $uploadDir = '/opt/lampp/htdocs/annales/archives/'; // le type de document est classifié entre 0 et n dans l'ensemble des entiers naturels -$max_val_type = 2; +$max_val_type = 3; // Liste des extensions autorisées pour les images $image_extensions = [ @@ -32,8 +32,11 @@ $pdf_extensions = ['pdf']; // Liste des extensions autorisées pour les fichiers de présentation (par exemple, PowerPoint) $presentation_extensions = ['ppt', 'pptx','odp','pptm','ppsx']; +// pour les fonctions speciales comme les quiz html... +$ext_speciales = ["html"]; + // Fusionner les listes en une seule liste -$ext_autorisees = array_merge($image_extensions, $pdf_extensions, $presentation_extensions); +$ext_autorisees = array_merge($image_extensions, $pdf_extensions, $presentation_extensions,$ext_speciales); function check_ext($filename) { $extension = pathinfo($filename, PATHINFO_EXTENSION); @@ -123,6 +126,9 @@ function saveFilesFromPost($postData,$id_ensemble) { if ($safe_type < 1 || $safe_type > $max_val_type) { echo(json_encode(['status'=> '2','msg'=>"Le type de document spécifié n'existe pas."])); + // supprime donc le fichier + unlink($filePath); + exit; } diff --git a/index.php b/index.php index 5e9d48e..a9f6126 100644 --- a/index.php +++ b/index.php @@ -149,13 +149,22 @@ titre_ensemble.innerText = doc.titre; document.getElementById("liste_resultats").appendChild(titre_ensemble); - // images ou pdf ? + // fichiers spéciaux ? let apercu; - if(doc.upload_path.toString().split(".").pop() == "pdf"){ - ele = document.createElement("embed"); + let ext = doc.upload_path.toString().split(".").pop(); + switch(ext){ + case "pdf": + ele = document.createElement("embed"); + break; + case "html": + ele = document.createElement("iframe"); + ele.setAttribute("sandbox","allow-forms allow-modals allow-scripts") + break; + default: + ele = document.createElement("img"); + break; + - }else{ - ele = document.createElement("img"); } ele.src = doc.upload_path; diff --git a/televerser.php b/televerser.php index 4375de0..64db30a 100644 --- a/televerser.php +++ b/televerser.php @@ -21,21 +21,28 @@ $csrf = new CSRF(); - + + +
- - +
+ + +
+ +
+ + +
@@ -54,7 +61,25 @@ 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:"ceci est un commenataire"},{duree:"15",themes:["elec analogique"],commentaire_exo:""}]; + + let ex = []; + + // details des exos pour les annales + if(formData["type"] == "1"){ + let details = document.getElementsByClassName("input-details-exo"); + + for(let i=0;i<=details.length;i = i + 3){ + ex.push({ + // duree + duree:details[i].getAttribute.value, + themes:details[i+1].getAttribute.value.split(","), + commentaire_exo:details[i+2].getAttribute.value + }) + } + } + + formData.append("exercices",JSON.stringify(ex)) @@ -137,6 +162,7 @@ function openCamera() { } + function dataURLtoBlob(dataURL) { const arr = dataURL.split(','); const mime = arr[0].match(/:(.*?);/)[1]; @@ -148,6 +174,85 @@ function dataURLtoBlob(dataURL) { } return new Blob([u8arr], { type: mime }); } + + +function ajouter_details_exo(){ + duree = document.createElement("input"); + duree.setAttribute("type","number"); + duree.setAttribute("hint","Entrez la durée de l'exercice en minutes.") + + // classe imortante pour itérer sur toutes les input + // dans le bon ordre et les associer aux exos dans la requête post + duree.setAttribute("class","input-details-exo"); + + document.getElementById("exercices_details_wrapper").appendChild(duree); + + + themes = document.createElement("input"); + themes.setAttribute("type","text"); + themes.setAttribute("hint","Entrez les themes abordés par l'exercice séparés par une virgule."); + themes.setAttribute("class","input-details-exo"); + + document.getElementById("exercices_details_wrapper").appendChild(themes); + + + comm = document.createElement("input"); + comm.setAttribute("type","text"); + comm.setAttribute("hint","Un ptit commentaire sur l'exo ?"); + comm.setAttribute("class","input-details-exo"); + + document.getElementById("exercices_details_wrapper").appendChild(comm); + + + // un peu de tendresse dans ce monde de brutes + br =document.createElement("br"); + document.getElementById("exercices_details_wrapper").appendChild(br); + hr =document.createElement("hr"); + document.getElementById("exercices_details_wrapper").appendChild(hr); +} + + + +function mode_html(){ + + document.getElementById("exercices_details_wrapper").setAttribute("hidden",true); + document.getElementById("corrige_checkbox_wrapper").setAttribute("hidden",true); + +} +function mode_fiche(){ + document.getElementById("exercices_details_wrapper").setAttribute("hidden",true); + document.getElementById("corrige_checkbox_wrapper").setAttribute("hidden",true); + +} + +function mode_annale(){ + document.getElementById("corrige_checkbox_wrapper").removeAttribute("hidden"); + document.getElementById("exercices_details_wrapper").removeAttribute("hidden"); +} + + +function changer_mode(){ + + + switch(document.getElementById("select_type").value){ + // annale + case "1": + mode_annale(); + break; + // fiche + case "2": + mode_fiche(); + break; + + // html personnalisé + case "3": + mode_html(); + break; + + } +} + +