Compare commits
No commits in common. "0ead65040c496b8221f80a10fb9847eb3abf9477" and "2255d593ba5cdb775c1d4ce79e63ca1d5c98a5e1" have entirely different histories.
0ead65040c
...
2255d593ba
11 changed files with 197 additions and 190 deletions
2
api.php
2
api.php
|
@ -95,7 +95,7 @@
|
|||
while ($doc = $resultDocu->fetch_assoc()) {
|
||||
|
||||
switch ($doc['type']) {
|
||||
default:
|
||||
case 1:
|
||||
|
||||
// on va maintenant prendre chaque exercice un par un
|
||||
// et afficher les bonnes infos :
|
||||
|
|
2
bdd.php
2
bdd.php
|
@ -356,6 +356,8 @@ function generer_chronologie(){
|
|||
while (($ens = $res->fetch_assoc())){
|
||||
|
||||
array_push($ensembles,$ens);
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
// on rajoute le chemin vers chaque document présent dans l'ensemble
|
||||
|
|
|
@ -106,7 +106,7 @@ border-radius: 7px;
|
|||
|
||||
.card embed{
|
||||
width: 100%;
|
||||
height: 150vh;
|
||||
height: 50vh;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
|
|
|
@ -162,17 +162,8 @@
|
|||
margin-bottom: 20px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.card-doc {
|
||||
margin-top: 5vh;
|
||||
background-color: #bad8df;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
||||
margin-bottom: 20px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.card-doc img {
|
||||
|
||||
.card img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
margin-bottom: 10px;
|
||||
|
@ -180,42 +171,42 @@
|
|||
|
||||
}
|
||||
|
||||
.card-doc textarea{
|
||||
.card textarea{
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
margin-bottom: 10px;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.card-doc embed{
|
||||
.card embed{
|
||||
width: 100%;
|
||||
height: 50vh;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.card-doc iframe {
|
||||
.card iframe {
|
||||
width: 100%;
|
||||
height: 50vh;
|
||||
|
||||
}
|
||||
|
||||
.card-doc video {
|
||||
.card video {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
|
||||
}
|
||||
|
||||
.card-doc div {
|
||||
.card div {
|
||||
margin-bottom: 10px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.card-doc ul {
|
||||
.card ul {
|
||||
padding-left: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.card-doc a{
|
||||
.card a{
|
||||
width: fit-content;
|
||||
grid-column: auto;
|
||||
}
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 81 KiB |
|
@ -19,6 +19,7 @@
|
|||
/(__)\ ) /( (__ ) _ ( _)(_ ) ( \__ \ /(__)\
|
||||
(__)(__)(_)\_) \___)(_) (_) (____)(_)\_)(___/(__)(__)
|
||||
</pre>
|
||||
|
||||
</div>
|
||||
|
||||
<h4>Comme vous pouvez le constater, on cherche quelqu'un pour le design (html + css) du site :D club.info@amicale-insat.fr</h4>
|
||||
|
@ -66,7 +67,6 @@
|
|||
<?php
|
||||
if(isset($_SESSION["utilisateur_authentifie"]) && ($_SESSION["utilisateur_authentifie"] == 1)){
|
||||
?>
|
||||
<img src="img/fox-reverse.gif">
|
||||
|
||||
<div class="barre-recherche centre-horizontal">
|
||||
<form id="recherche_form">
|
||||
|
|
|
@ -46,15 +46,14 @@ async function gen_contenu() {
|
|||
/*const uploadPathDiv = document.createElement('div');
|
||||
uploadPathDiv.textContent = `Upload Path: ${doc.upload_path}`;
|
||||
card.appendChild(uploadPathDiv);*/
|
||||
console.log(doc.type)
|
||||
switch (doc.type) {
|
||||
|
||||
switch (doc.type) {
|
||||
case 2: // image
|
||||
const img = document.createElement('img');
|
||||
img.src = doc.upload_path;
|
||||
img.alt = doc.titre;
|
||||
card.appendChild(img);
|
||||
|
||||
|
||||
const imageLink = document.createElement('a');
|
||||
imageLink.href = doc.upload_path;
|
||||
imageLink.classList.add('lien');
|
||||
|
@ -65,7 +64,6 @@ async function gen_contenu() {
|
|||
case 3: // pdf
|
||||
const embed = document.createElement('embed');
|
||||
embed.src = doc.upload_path;
|
||||
|
||||
card.appendChild(embed);
|
||||
|
||||
const pdfLink = document.createElement('a');
|
||||
|
|
329
js/index.js
329
js/index.js
|
@ -1,89 +1,4 @@
|
|||
function createDocumentCard(doc){
|
||||
const card = document.createElement('div');
|
||||
card.classList.add('card-doc');
|
||||
|
||||
// on affiche le titre du résultat parce qu'on est pas des sauvages
|
||||
let titre_ensemble;
|
||||
titre_ensemble = document.createElement("h2");
|
||||
titre_ensemble.innerText = "Document de l'archive";
|
||||
titre_ensemble.setAttribute("onclick","document.location.href='ens.php?ensemble_id="+doc.ensemble_id.toString()+"'");
|
||||
card.appendChild(titre_ensemble);
|
||||
|
||||
const buttonsDiv = document.createElement("div");
|
||||
buttonsDiv.classList.add("ligne-boutons");
|
||||
|
||||
// fichiers spéciaux ?
|
||||
|
||||
switch (doc.type) {
|
||||
case 2: // image
|
||||
const img = document.createElement('img');
|
||||
img.src = doc.upload_path;
|
||||
img.alt = doc.titre;
|
||||
card.appendChild(img);
|
||||
|
||||
const imageLink = document.createElement('a');
|
||||
imageLink.href = doc.upload_path;
|
||||
imageLink.classList.add('lien');
|
||||
imageLink.textContent = 'Voir image';
|
||||
imageLink.target = '_blank';
|
||||
buttonsDiv.appendChild(imageLink);
|
||||
break;
|
||||
case 3: // pdf
|
||||
const embed = document.createElement('embed');
|
||||
embed.src = doc.upload_path;
|
||||
card.appendChild(embed);
|
||||
|
||||
const pdfLink = document.createElement('a');
|
||||
pdfLink.href = doc.upload_path;
|
||||
pdfLink.classList.add('lien');
|
||||
pdfLink.textContent = 'Voir PDF en grand';
|
||||
pdfLink.target = '_blank';
|
||||
buttonsDiv.appendChild(pdfLink);
|
||||
break;
|
||||
case 4: // video
|
||||
const video = document.createElement('video');
|
||||
video.src = doc.upload_path;
|
||||
video.controls = true;
|
||||
card.appendChild(video);
|
||||
break;
|
||||
case 5:
|
||||
const iframe = document.createElement('iframe');
|
||||
iframe.src = doc.upload_path;
|
||||
card.appendChild(iframe);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
const textarea = document.createElement('textarea');
|
||||
var xmlhttp, text;
|
||||
xmlhttp = new XMLHttpRequest();
|
||||
xmlhttp.open('GET', doc.upload_path, false);
|
||||
xmlhttp.send();
|
||||
text = xmlhttp.responseText;
|
||||
textarea.value = text;
|
||||
card.appendChild(textarea)
|
||||
break;
|
||||
default:
|
||||
const unsupportedLink = document.createElement('a');
|
||||
unsupportedLink.href = doc.upload_path;
|
||||
unsupportedLink.classList.add('lien');
|
||||
unsupportedLink.textContent = 'Type de fichier non supporté.';
|
||||
unsupportedLink.target = '_blank';
|
||||
buttonsDiv.appendChild(unsupportedLink);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
const ele = document.createElement("a");
|
||||
ele.innerText = "Voir tous les pdf de cet ensemble";
|
||||
ele.href = `ens.php?ensemble_id=${doc.ensemble_id}`;
|
||||
ele.classList.add("lien");
|
||||
|
||||
buttonsDiv.appendChild(ele);
|
||||
|
||||
card.appendChild(buttonsDiv);
|
||||
|
||||
return card;
|
||||
}
|
||||
async function rechercher(){
|
||||
|
||||
var req = document.getElementById("recherche_input").value;
|
||||
|
@ -126,37 +41,98 @@ async function rechercher(){
|
|||
document.getElementById("liste_resultats").appendChild(titre);
|
||||
|
||||
if(data.status == 1){
|
||||
let ensemblesMap = new Map();
|
||||
|
||||
data.resultats.forEach(doc => {
|
||||
if (!ensemblesMap.has(doc.ensemble_id)) {
|
||||
let ensembleDiv = document.createElement("div");
|
||||
ensembleDiv.classList.add("ensemble");
|
||||
ensembleDiv.classList.add("card");
|
||||
|
||||
let ensembleTitle = document.createElement("h2");
|
||||
ensembleTitle.textContent = decodeHtmlEntities(doc.ensemble_titre);
|
||||
ensembleDiv.appendChild(ensembleTitle);
|
||||
|
||||
let toggleButton = document.createElement("button");
|
||||
toggleButton.innerText = "Entrevoir/Masquer les documents de cet ensemble";
|
||||
toggleButton.setAttribute("data-ensemble-id", doc.ensemble_id);
|
||||
toggleButton.classList.add("button");
|
||||
toggleButton.classList.add("color-red-tr");
|
||||
toggleButton.onclick = () => toggleVisibility(doc.ensemble_id);
|
||||
ensembleDiv.appendChild(toggleButton);
|
||||
const card = document.createElement('div');
|
||||
card.classList.add('card');
|
||||
|
||||
let documentsDiv = document.createElement("div");
|
||||
documentsDiv.classList.add("documents");
|
||||
documentsDiv.id = "documents-" + doc.ensemble_id;
|
||||
ensembleDiv.appendChild(documentsDiv);
|
||||
// on affiche le titre du résultat parce qu'on est pas des sauvages
|
||||
let titre_ensemble;
|
||||
titre_ensemble = document.createElement("h2");
|
||||
titre_ensemble.innerText = doc.titre;
|
||||
titre_ensemble.setAttribute("onclick","document.location.href='ens.php?ensemble_id="+doc.ensemble_id.toString()+"'");
|
||||
|
||||
card.appendChild(titre_ensemble);
|
||||
|
||||
document.getElementById("liste_resultats").appendChild(ensembleDiv);
|
||||
ensemblesMap.set(doc.ensemble_id, documentsDiv);
|
||||
const buttonsDiv = document.createElement("div");
|
||||
buttonsDiv.classList.add("ligne-boutons");
|
||||
|
||||
// fichiers spéciaux ?
|
||||
|
||||
switch (doc.type) {
|
||||
case 2: // image
|
||||
const img = document.createElement('img');
|
||||
img.src = doc.upload_path;
|
||||
img.alt = doc.titre;
|
||||
card.appendChild(img);
|
||||
|
||||
const imageLink = document.createElement('a');
|
||||
imageLink.href = doc.upload_path;
|
||||
imageLink.classList.add('lien');
|
||||
imageLink.textContent = 'Voir image';
|
||||
imageLink.target = '_blank';
|
||||
card.appendChild(imageLink);
|
||||
break;
|
||||
case 3: // pdf
|
||||
const embed = document.createElement('embed');
|
||||
embed.src = doc.upload_path;
|
||||
card.appendChild(embed);
|
||||
|
||||
const pdfLink = document.createElement('a');
|
||||
pdfLink.href = doc.upload_path;
|
||||
pdfLink.classList.add('lien');
|
||||
pdfLink.textContent = 'Voir PDF en grand';
|
||||
pdfLink.target = '_blank';
|
||||
card.appendChild(pdfLink);
|
||||
break;
|
||||
case 4: // video
|
||||
const video = document.createElement('video');
|
||||
video.src = doc.upload_path;
|
||||
video.controls = true;
|
||||
card.appendChild(video);
|
||||
break;
|
||||
case 5:
|
||||
const iframe = document.createElement('iframe');
|
||||
iframe.src = doc.upload_path;
|
||||
card.appendChild(iframe);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
const textarea = document.createElement('textarea');
|
||||
var xmlhttp, text;
|
||||
xmlhttp = new XMLHttpRequest();
|
||||
xmlhttp.open('GET', doc.upload_path, false);
|
||||
xmlhttp.send();
|
||||
text = xmlhttp.responseText;
|
||||
textarea.value = text;
|
||||
card.appendChild(textarea)
|
||||
break;
|
||||
default:
|
||||
const unsupportedLink = document.createElement('a');
|
||||
unsupportedLink.href = doc.upload_path;
|
||||
unsupportedLink.classList.add('lien');
|
||||
unsupportedLink.textContent = 'Type de fichier non supporté.';
|
||||
unsupportedLink.target = '_blank';
|
||||
buttonsDiv.appendChild(unsupportedLink);
|
||||
break;
|
||||
}
|
||||
|
||||
let card = createDocumentCard(doc);
|
||||
ensemblesMap.get(doc.ensemble_id).appendChild(card);
|
||||
|
||||
const ele = document.createElement("a");
|
||||
ele.innerText = "Voir tous les pdf de cet ensemble";
|
||||
ele.href = `ens.php?ensemble_id=${doc.ensemble_id}`;
|
||||
ele.classList.add("lien");
|
||||
|
||||
buttonsDiv.appendChild(ele);
|
||||
|
||||
card.appendChild(buttonsDiv);
|
||||
|
||||
|
||||
document.getElementById("liste_resultats").appendChild(card);
|
||||
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -177,7 +153,7 @@ async function gen_chronologie(){
|
|||
if(data.resultats.length > 0){
|
||||
// ensuite on ajoute un petit titre à la chronologie
|
||||
let titre = document.createElement("h1");
|
||||
titre.innerText = "Archives récemment publiées";
|
||||
titre.innerText = "Documents récemment publiés";
|
||||
document.getElementById("liste_resultats").appendChild(titre);
|
||||
}else{
|
||||
|
||||
|
@ -186,44 +162,101 @@ async function gen_chronologie(){
|
|||
|
||||
// et on remplis avec ce que l'api a généré
|
||||
if(data.status == 1){
|
||||
let ensemblesMap = new Map();
|
||||
|
||||
data.resultats.forEach(ens => {
|
||||
ens.documents.forEach(doc => {
|
||||
if (!ensemblesMap.has(doc.ensemble_id)) {
|
||||
let ensembleDiv = document.createElement("div");
|
||||
ensembleDiv.classList.add("ensemble");
|
||||
ensembleDiv.classList.add("card");
|
||||
|
||||
ens.documents.forEach(doc=>{
|
||||
|
||||
let ensembleTitle = document.createElement("h2");
|
||||
const card = document.createElement('div');
|
||||
card.classList.add('card');
|
||||
|
||||
// for some reasons single quotes shows up as html entities
|
||||
// after the json has been parsed
|
||||
ensembleTitle.textContent = decodeHtmlEntities(doc.titre);
|
||||
ensembleDiv.appendChild(ensembleTitle);
|
||||
// on affiche le titre du résultat parce qu'on est pas des sauvages
|
||||
let titre_ensemble;
|
||||
titre_ensemble = document.createElement("h2");
|
||||
titre_ensemble.innerText = doc.titre;
|
||||
titre_ensemble.setAttribute("onclick","document.location.href='ens.php?ensemble_id="+doc.ensemble_id.toString()+"'");
|
||||
|
||||
card.appendChild(titre_ensemble);
|
||||
|
||||
let toggleButton = document.createElement("button");
|
||||
toggleButton.innerText = "Entrevoir/Masquer les documents de cet ensemble";
|
||||
toggleButton.setAttribute("data-ensemble-id", doc.ensemble_id);
|
||||
toggleButton.classList.add("button");
|
||||
toggleButton.classList.add("color-red-tr");
|
||||
toggleButton.onclick = () => toggleVisibility(doc.ensemble_id);
|
||||
ensembleDiv.appendChild(toggleButton);
|
||||
|
||||
let documentsDiv = document.createElement("div");
|
||||
documentsDiv.classList.add("documents");
|
||||
documentsDiv.id = "documents-" + doc.ensemble_id;
|
||||
ensembleDiv.appendChild(documentsDiv);
|
||||
|
||||
document.getElementById("liste_resultats").appendChild(ensembleDiv);
|
||||
ensemblesMap.set(doc.ensemble_id, documentsDiv);
|
||||
const buttonsDiv = document.createElement("div");
|
||||
buttonsDiv.classList.add("ligne-boutons");
|
||||
|
||||
// fichiers spéciaux ?
|
||||
|
||||
|
||||
switch (doc.type) {
|
||||
case 2: // image
|
||||
const img = document.createElement('img');
|
||||
img.src = doc.upload_path;
|
||||
img.alt = doc.titre;
|
||||
card.appendChild(img);
|
||||
|
||||
const imageLink = document.createElement('a');
|
||||
imageLink.href = doc.upload_path;
|
||||
imageLink.classList.add('lien');
|
||||
imageLink.textContent = 'Voir image';
|
||||
imageLink.target = '_blank';
|
||||
buttonsDiv.appendChild(imageLink);
|
||||
break;
|
||||
case 3: // pdf
|
||||
const embed = document.createElement('embed');
|
||||
embed.src = doc.upload_path;
|
||||
card.appendChild(embed);
|
||||
|
||||
const pdfLink = document.createElement('a');
|
||||
pdfLink.href = doc.upload_path;
|
||||
pdfLink.classList.add('lien');
|
||||
pdfLink.textContent = 'Voir PDF en grand';
|
||||
pdfLink.target = '_blank';
|
||||
buttonsDiv.appendChild(pdfLink);
|
||||
break;
|
||||
case 4: // video
|
||||
const video = document.createElement('video');
|
||||
video.src = doc.upload_path;
|
||||
video.controls = true;
|
||||
card.appendChild(video);
|
||||
break;
|
||||
case 5:
|
||||
const iframe = document.createElement('iframe');
|
||||
iframe.src = doc.upload_path;
|
||||
card.appendChild(iframe);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
const textarea = document.createElement('textarea');
|
||||
var xmlhttp, text;
|
||||
xmlhttp = new XMLHttpRequest();
|
||||
xmlhttp.open('GET', doc.upload_path, false);
|
||||
xmlhttp.send();
|
||||
text = xmlhttp.responseText;
|
||||
textarea.value = text;
|
||||
card.appendChild(textarea)
|
||||
break;
|
||||
default:
|
||||
const unsupportedLink = document.createElement('a');
|
||||
unsupportedLink.href = doc.upload_path;
|
||||
unsupportedLink.classList.add('lien');
|
||||
unsupportedLink.textContent = 'Type de fichier non supporté.';
|
||||
unsupportedLink.target = '_blank';
|
||||
buttonsDiv.appendChild(unsupportedLink);
|
||||
break;
|
||||
}
|
||||
|
||||
let card = createDocumentCard(doc);
|
||||
card.style.display = "none";
|
||||
ensemblesMap.get(doc.ensemble_id).appendChild(card);
|
||||
|
||||
const ele = document.createElement("a");
|
||||
ele.innerText = "Voir tous les pdf de cet ensemble";
|
||||
ele.href = `ens.php?ensemble_id=${doc.ensemble_id}`;
|
||||
ele.classList.add("lien");
|
||||
|
||||
buttonsDiv.appendChild(ele);
|
||||
|
||||
card.appendChild(buttonsDiv);
|
||||
|
||||
document.getElementById("liste_resultats").appendChild(card);
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -266,19 +299,3 @@ document.addEventListener("DOMContentLoaded", (event)=>{
|
|||
|
||||
});
|
||||
|
||||
function toggleVisibility(ensembleId) {
|
||||
let documentsDiv = document.getElementById("documents-" + ensembleId);
|
||||
|
||||
let cards = documentsDiv.getElementsByClassName("card-doc");
|
||||
|
||||
for(i = 0;i<cards.length;i++){
|
||||
cards[i].style.display = cards[i].style.display === "none" ? "block" : "none";
|
||||
}
|
||||
}
|
||||
|
||||
function decodeHtmlEntities(str) {
|
||||
const textarea = document.createElement("textarea");
|
||||
textarea.innerHTML = str;
|
||||
return textarea.value;
|
||||
|
||||
}
|
||||
|
|
|
@ -39,7 +39,6 @@ $csrf = new CSRF();
|
|||
<br>
|
||||
<form id="uploadForm" enctype="multipart/form-data">
|
||||
<input type="file" class="champ" id="fileInput" multiple>
|
||||
<label for="uploadForm">Mettez tout d'un seul coup ici ( sujet, corrigé etc...)</label>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ function assainir_et_valider_mel($og_mel): string {
|
|||
|
||||
// Vérifie si l'adresse e-mail est valide
|
||||
$reg_pattern = "/^[a-zA-Z0-9._%+-]+@insa-toulouse\.fr$/";
|
||||
if (filter_var($mel, FILTER_VALIDATE_EMAIL) && preg_match($reg_pattern,$mel)) {
|
||||
if (filter_var($mel, FILTER_VALIDATE_EMAIL) && preg_match($mel,$reg_pattern)) {
|
||||
return $mel; // Si valide, renvoie l'adresse e-mail assainie
|
||||
} else {
|
||||
return "[ERREUR_MEL_MALSAINT]"; // Sinon, renvoie un message d'erreur
|
||||
|
|
|
@ -28,11 +28,11 @@ class Mail
|
|||
try {
|
||||
$this::$mail = new PHPMailer(true);
|
||||
$this::$mail->isSMTP();
|
||||
$this::$mail->Host = "192.168.200.9";
|
||||
$this::$mail->SMTPAuth = false;
|
||||
//$this::$mail->Username = $mel_id;
|
||||
//$this::$mail->Password = $mel_mdp;
|
||||
$this::$mail->setFrom($mel_adr, name: 'Club Info INSA Toulouse');
|
||||
$this::$mail->Host = "smtp.insa-toulouse.fr";
|
||||
$this::$mail->SMTPAuth = true;
|
||||
$this::$mail->Username = $mel_id;
|
||||
$this::$mail->Password = $mel_mdp;
|
||||
$this::$mail->setFrom($mel_adr, 'Club Info INSA Toulouse');
|
||||
$this::$mail->isHTML(true);
|
||||
$this::$mail->Subject = 'Inscription sur Arch\'INSA';
|
||||
$this::$mail->Body = 'Message vide.';
|
||||
|
@ -67,8 +67,8 @@ class Mail
|
|||
$mail_dest=htmlspecialchars($mail_dest);
|
||||
$name_dest=htmlspecialchars($name_dest);
|
||||
$this::$mail->addAddress($mail_dest, $name_dest);
|
||||
$this::$mail->Port = 25;
|
||||
//$this::$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
|
||||
$this::$mail->Port = 465;
|
||||
$this::$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
|
||||
$this::$mail->send();
|
||||
} catch (Exception $e) {
|
||||
$this::$error=$this::$mail->ErrorInfo;
|
||||
|
|
Loading…
Reference in a new issue