pour test si c'est ma lamp stack ou juste mon code qui pu

This commit is contained in:
thaaoblues 2024-01-16 16:57:40 +01:00
parent 9f34926e7f
commit 26731533b6
3 changed files with 134 additions and 14 deletions

10
bdd.php
View file

@ -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;
}

View file

@ -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;

View file

@ -21,21 +21,28 @@ $csrf = new CSRF();
<input type="file" id="fileInput" multiple>
<input type="text" placeholder="titre" id="titre"></input>
<select id="select_type">
<option value="1">annale</option>
<option value="2">fiche_revision</option>
<select id="select_type" onchange="changer_mode()">
<option value="1" >annale</option>
<option value="2" >fiche_revision</option>
<option value="3" >HTML personnalisé</option>
</select>
<input type="text" placeholder="commentaires généraux sur l'ensemble des documents" id="commentaire_auteur"></input>
<div id="selectedImages"></div>
<input type="checkbox" id="corrige_checkbox">
<label for="corrige_checkbox">Corrigé inclu</label>
<div id="corrige_checkbox_wrapper">
<input type="checkbox" id="corrige_checkbox">
<label for="corrige_checkbox">Corrigé inclu</label>
</div>
<button type="button" onclick="uploadFiles()">Téléverser les fichiers</button>
</form>
<div id="exercices_details_wrapper">
<button onclick="ajouter_details_exo()">Ajouter les détails d'un exercice</button>
</div>
<!-- Button to open the camera -->
<button onclick="openCamera()">Open Camera</button>
@ -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;
}
}
</script>
</body>