Porovnat revize

..

Žádné společné commity. „0ead65040c496b8221f80a10fb9847eb3abf9477“ a „2255d593ba5cdb775c1d4ce79e63ca1d5c98a5e1“ mají zcela odlišnou historii.

11 změnil soubory, kde provedl 197 přidání a 190 odebrání

Zobrazit soubor

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

Zobrazit soubor

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

Zobrazit soubor

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

Zobrazit soubor

@ -163,16 +163,7 @@
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;
}

Binární soubor nebyl zobrazen.

Před

Šířka:  |  Výška:  |  Velikost: 81 KiB

Zobrazit soubor

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

Zobrazit soubor

@ -46,7 +46,7 @@ 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) {
case 2: // image
const img = document.createElement('img');
@ -54,7 +54,6 @@ async function gen_contenu() {
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');

Zobrazit soubor

@ -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()+"'");
document.getElementById("liste_resultats").appendChild(ensembleDiv);
ensemblesMap.set(doc.ensemble_id, documentsDiv);
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';
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=>{
const card = document.createElement('div');
card.classList.add('card');
// 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);
const buttonsDiv = document.createElement("div");
buttonsDiv.classList.add("ligne-boutons");
// fichiers spéciaux ?
let ensembleTitle = document.createElement("h2");
switch (doc.type) {
case 2: // image
const img = document.createElement('img');
img.src = doc.upload_path;
img.alt = doc.titre;
card.appendChild(img);
// 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 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);
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 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;
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);
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;
}

Zobrazit soubor

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

Zobrazit soubor

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

Zobrazit soubor

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