Compare commits

..

7 commits

Author SHA1 Message Date
thaaoblues
0ead65040c fix : lil $i and upload indication 2025-06-21 16:01:40 +02:00
thaaoblues
bd5fcec15b forgot to comment 2024-12-16 21:52:58 +01:00
thaaoblues
82f81b6b2f mail 2024-12-16 21:39:37 +01:00
thaaoblues
a5f58f90bc FIX LES APOSTROPHES ENFIIIIINNNN 2024-11-27 20:57:40 +01:00
thaaoblues
ba552d9955 fix les documents que ne s'affichaient pas mais pas encore les apostrophes 2024-11-27 20:30:30 +01:00
thaaoblues
9abc0f4f7d regroupement des archives pour eviter de d'inonder les resultats 2024-10-20 18:12:55 +02:00
thaaoblues
7d5867f55f aie aie aie l'inversement des arguments x'( 2024-10-17 18:53:42 +02:00
11 changed files with 190 additions and 197 deletions

View file

@ -95,7 +95,7 @@
while ($doc = $resultDocu->fetch_assoc()) {
switch ($doc['type']) {
case 1:
default:
// on va maintenant prendre chaque exercice un par un
// et afficher les bonnes infos :

View file

@ -356,8 +356,6 @@ 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

View file

@ -106,7 +106,7 @@ border-radius: 7px;
.card embed{
width: 100%;
height: 50vh;
height: 150vh;
margin-bottom: 10px;
}

View file

@ -162,8 +162,17 @@
margin-bottom: 20px;
padding: 20px;
}
.card img {
.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 {
width: 100%;
height: auto;
margin-bottom: 10px;
@ -171,42 +180,42 @@
}
.card textarea{
.card-doc textarea{
width: 100%;
height: 100vh;
margin-bottom: 10px;
border-radius: 7px;
}
.card embed{
.card-doc embed{
width: 100%;
height: 50vh;
margin-bottom: 10px;
}
.card iframe {
.card-doc iframe {
width: 100%;
height: 50vh;
}
.card video {
.card-doc video {
width: 100%;
height: auto;
}
.card div {
.card-doc div {
margin-bottom: 10px;
line-height: 1.5;
}
.card ul {
.card-doc ul {
padding-left: 20px;
margin-bottom: 10px;
}
.card a{
.card-doc a{
width: fit-content;
grid-column: auto;
}

BIN
img/fox-reverse.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View file

@ -19,7 +19,6 @@
/(__)\ ) /( (__ ) _ ( _)(_ ) ( \__ \ /(__)\
(__)(__)(_)\_) \___)(_) (_) (____)(_)\_)(___/(__)(__)
</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>
@ -67,6 +66,7 @@
<?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">

View file

@ -46,14 +46,15 @@ async function gen_contenu() {
/*const uploadPathDiv = document.createElement('div');
uploadPathDiv.textContent = `Upload Path: ${doc.upload_path}`;
card.appendChild(uploadPathDiv);*/
switch (doc.type) {
console.log(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');
@ -64,6 +65,7 @@ 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');

View file

@ -1,4 +1,89 @@
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;
@ -41,98 +126,37 @@ 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);
const card = document.createElement('div');
card.classList.add('card');
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);
// 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 documentsDiv = document.createElement("div");
documentsDiv.classList.add("documents");
documentsDiv.id = "documents-" + doc.ensemble_id;
ensembleDiv.appendChild(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;
document.getElementById("liste_resultats").appendChild(ensembleDiv);
ensemblesMap.set(doc.ensemble_id, documentsDiv);
}
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);
let card = createDocumentCard(doc);
ensemblesMap.get(doc.ensemble_id).appendChild(card);
});
}
}
@ -153,7 +177,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 = "Documents récemment publiés";
titre.innerText = "Archives récemment publiées";
document.getElementById("liste_resultats").appendChild(titre);
}else{
@ -162,101 +186,44 @@ 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=>{
const card = document.createElement('div');
card.classList.add('card');
let ensembleTitle = document.createElement("h2");
// 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);
// for some reasons single quotes shows up as html entities
// after the json has been parsed
ensembleTitle.textContent = decodeHtmlEntities(doc.titre);
ensembleDiv.appendChild(ensembleTitle);
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 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 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);
let card = createDocumentCard(doc);
card.style.display = "none";
ensemblesMap.get(doc.ensemble_id).appendChild(card);
});
});
}
}
@ -299,3 +266,19 @@ 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;
}

View file

@ -39,6 +39,7 @@ $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>

View file

@ -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($mel,$reg_pattern)) {
if (filter_var($mel, FILTER_VALIDATE_EMAIL) && preg_match($reg_pattern,$mel)) {
return $mel; // Si valide, renvoie l'adresse e-mail assainie
} else {
return "[ERREUR_MEL_MALSAINT]"; // Sinon, renvoie un message d'erreur

View file

@ -28,11 +28,11 @@ class Mail
try {
$this::$mail = new PHPMailer(true);
$this::$mail->isSMTP();
$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->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->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 = 465;
$this::$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$this::$mail->Port = 25;
//$this::$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$this::$mail->send();
} catch (Exception $e) {
$this::$error=$this::$mail->ErrorInfo;