pour test si c'est ma lamp stack ou juste mon code qui pu
Этот коммит содержится в:
родитель
9f34926e7f
коммит
26731533b6
3 изменённых файлов: 134 добавлений и 14 удалений
10
bdd.php
10
bdd.php
|
@ -10,7 +10,7 @@ $conn = new mysqli($servername, $username, $password,$dbname);
|
||||||
$uploadDir = '/opt/lampp/htdocs/annales/archives/';
|
$uploadDir = '/opt/lampp/htdocs/annales/archives/';
|
||||||
|
|
||||||
// le type de document est classifié entre 0 et n dans l'ensemble des entiers naturels
|
// 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
|
// Liste des extensions autorisées pour les images
|
||||||
$image_extensions = [
|
$image_extensions = [
|
||||||
|
@ -32,8 +32,11 @@ $pdf_extensions = ['pdf'];
|
||||||
// Liste des extensions autorisées pour les fichiers de présentation (par exemple, PowerPoint)
|
// Liste des extensions autorisées pour les fichiers de présentation (par exemple, PowerPoint)
|
||||||
$presentation_extensions = ['ppt', 'pptx','odp','pptm','ppsx'];
|
$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
|
// 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) {
|
function check_ext($filename) {
|
||||||
$extension = pathinfo($filename, PATHINFO_EXTENSION);
|
$extension = pathinfo($filename, PATHINFO_EXTENSION);
|
||||||
|
@ -123,6 +126,9 @@ function saveFilesFromPost($postData,$id_ensemble) {
|
||||||
|
|
||||||
if ($safe_type < 1 || $safe_type > $max_val_type) {
|
if ($safe_type < 1 || $safe_type > $max_val_type) {
|
||||||
echo(json_encode(['status'=> '2','msg'=>"Le type de document spécifié n'existe pas."]));
|
echo(json_encode(['status'=> '2','msg'=>"Le type de document spécifié n'existe pas."]));
|
||||||
|
// supprime donc le fichier
|
||||||
|
unlink($filePath);
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
19
index.php
19
index.php
|
@ -149,13 +149,22 @@
|
||||||
titre_ensemble.innerText = doc.titre;
|
titre_ensemble.innerText = doc.titre;
|
||||||
document.getElementById("liste_resultats").appendChild(titre_ensemble);
|
document.getElementById("liste_resultats").appendChild(titre_ensemble);
|
||||||
|
|
||||||
// images ou pdf ?
|
// fichiers spéciaux ?
|
||||||
let apercu;
|
let apercu;
|
||||||
if(doc.upload_path.toString().split(".").pop() == "pdf"){
|
let ext = doc.upload_path.toString().split(".").pop();
|
||||||
ele = document.createElement("embed");
|
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;
|
ele.src = doc.upload_path;
|
||||||
|
|
119
televerser.php
119
televerser.php
|
@ -21,21 +21,28 @@ $csrf = new CSRF();
|
||||||
<input type="file" id="fileInput" multiple>
|
<input type="file" id="fileInput" multiple>
|
||||||
<input type="text" placeholder="titre" id="titre"></input>
|
<input type="text" placeholder="titre" id="titre"></input>
|
||||||
|
|
||||||
<select id="select_type">
|
<select id="select_type" onchange="changer_mode()">
|
||||||
<option value="1">annale</option>
|
<option value="1" >annale</option>
|
||||||
<option value="2">fiche_revision</option>
|
<option value="2" >fiche_revision</option>
|
||||||
|
<option value="3" >HTML personnalisé</option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<input type="text" placeholder="commentaires généraux sur l'ensemble des documents" id="commentaire_auteur"></input>
|
<input type="text" placeholder="commentaires généraux sur l'ensemble des documents" id="commentaire_auteur"></input>
|
||||||
<div id="selectedImages"></div>
|
<div id="selectedImages"></div>
|
||||||
|
|
||||||
<input type="checkbox" id="corrige_checkbox">
|
<div id="corrige_checkbox_wrapper">
|
||||||
<label for="corrige_checkbox">Corrigé inclu</label>
|
<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>
|
<button type="button" onclick="uploadFiles()">Téléverser les fichiers</button>
|
||||||
</form>
|
</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 to open the camera -->
|
||||||
<button onclick="openCamera()">Open Camera</button>
|
<button onclick="openCamera()">Open Camera</button>
|
||||||
|
|
||||||
|
@ -54,7 +61,25 @@ function uploadFiles() {
|
||||||
|
|
||||||
formData.append("corrige_inclu",document.getElementById("corrige_checkbox").value);
|
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))
|
formData.append("exercices",JSON.stringify(ex))
|
||||||
|
|
||||||
|
|
||||||
|
@ -137,6 +162,7 @@ function openCamera() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function dataURLtoBlob(dataURL) {
|
function dataURLtoBlob(dataURL) {
|
||||||
const arr = dataURL.split(',');
|
const arr = dataURL.split(',');
|
||||||
const mime = arr[0].match(/:(.*?);/)[1];
|
const mime = arr[0].match(/:(.*?);/)[1];
|
||||||
|
@ -148,6 +174,85 @@ function dataURLtoBlob(dataURL) {
|
||||||
}
|
}
|
||||||
return new Blob([u8arr], { type: mime });
|
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>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
Загрузка…
Сослаться в новой задаче