fonctionnalités primaires backend complètes. Manque jeton csrf.

This commit is contained in:
thaaoblues 2024-01-01 17:53:53 +01:00
부모 94e777d031
커밋 3bd2bcd01a
4개의 변경된 파일141개의 추가작업 그리고 5개의 파일을 삭제

14
api.php
파일 보기

@ -147,6 +147,20 @@
break; break;
case "generer_chronologie":
try{
$res = generer_chronologie();
echo(json_encode(["status"=>"1","resultats"=>$res]));
}catch(Exception $e){
echo( json_encode(["status"=> "0","msg"=> $e->getMessage() ]) );
}
break;
default: default:
echo(json_encode(['status'=> '2','msg'=> "Ce point d'arrivée n'existe pas dans l'api."])); echo(json_encode(['status'=> '2','msg'=> "Ce point d'arrivée n'existe pas dans l'api."]));
break; break;

36
bdd.php
파일 보기

@ -268,4 +268,40 @@ function supprimer_ensemble($ensembleId){
$sql = "DELETE FROM ensembles WHERE id=$ensembleId"; $sql = "DELETE FROM ensembles WHERE id=$ensembleId";
} }
function generer_chronologie(){
global $conn;
// on va choper les 10 derniers trucs televerses par les gens
$sql = "SELECT * FROM ensembles ORDER BY date_televersement DESC";
$res = $conn->execute_query($sql);
$i = 0;
$ensembles = array();
while (($ens = $res->fetch_assoc()) && $i < 10){
array_push($ensembles,$ens);
$i++;
}
// on rajoute le chemin vers chaque document présent dans l'ensemble
$resultat_complet = array();
foreach($ensembles as $ens){
$sql = "SELECT titre,upload_path,ensemble_id FROM documents WHERE ensemble_id=?";
$res = $conn->execute_query($sql,array($ens["id"]));
$ens["documents"] = array();
while($doc = $res->fetch_assoc()){
array_push($ens["documents"],$doc);
}
array_push($resultat_complet,$ens);
}
return $resultat_complet;
}
?> ?>

파일 보기

@ -25,6 +25,11 @@
</form> </form>
<a href="televerser.php">Téléverser des documents</a> <a href="televerser.php">Téléverser des documents</a>
<div id="liste_resultats">
</div>
</body> </body>
<script> <script>
async function test_auth(){ async function test_auth(){
@ -78,17 +83,95 @@
resp = await fetch(url); resp = await fetch(url);
data = await resp.json(); data = await resp.json();
// vide d'abord les éléments présents dans la liste sur la page
document.getElementById("liste_resultats").innerHTML = "";
if(data.status == 1){ if(data.status == 1){
data.resultats.forEach(doc => { data.resultats.forEach(doc => {
const img = document.createElement("img");
img.src = doc.upload_path;
img.setAttribute("onclick","document.location.href='ens.php?ensemble_id="+doc.ensemble_id.toString()+"'");
document.body.appendChild(img); // 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;
document.getElementById("liste_resultats").appendChild(titre_ensemble);
// images ou pdf ?
let ele;
if(doc.upload_path.toString().split(".").pop() == "pdf"){
ele = document.createElement("embed");
}else{
ele = document.createElement("img");
}
ele.src = doc.upload_path;
ele.setAttribute("onclick","document.location.href='ens.php?ensemble_id="+doc.ensemble_id.toString()+"'");
document.getElementById("liste_resultats").appendChild(ele);
}); });
} }
} }
async function gen_chronologie(){
var url = "/annales/api.php/generer_chronologie";
console.log(url);
resp = await fetch(url);
data = await resp.json();
console.log(data);
// vide d'abord les éléments présents dans la liste sur la page
document.getElementById("liste_resultats").innerHTML = "";
// ensuite on ajoute un petit titre à la chronologie
let titre = document.createElement("h1");
titre.innerText = "Documents récemment publiés";
document.getElementById("liste_resultats").appendChild(titre);
// et on remplis avec ce que l'api a généré
if(data.status == 1){
data.resultats.forEach(ens => {
ens.documents.forEach(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 = doc.titre;
document.getElementById("liste_resultats").appendChild(titre_ensemble);
// images ou pdf ?
let apercu;
if(doc.upload_path.toString().split(".").pop() == "pdf"){
ele = document.createElement("embed");
}else{
ele = document.createElement("img");
}
ele.src = doc.upload_path;
ele.setAttribute("onclick","document.location.href='ens.php?ensemble_id="+doc.ensemble_id.toString()+"'");
document.getElementById("liste_resultats").appendChild(ele);
});
});
}
}
gen_chronologie();
test_auth(); test_auth();
document.getElementById("recherche_input").onkeydown =function(event) { document.getElementById("recherche_input").onkeydown =function(event) {
if (event.key === "Enter"){ if (event.key === "Enter"){
@ -108,5 +191,7 @@
</script> </script>
</html> </html>

파일 보기

@ -21,7 +21,8 @@ $sql = "
id INT AUTO_INCREMENT PRIMARY KEY, id INT AUTO_INCREMENT PRIMARY KEY,
commentaire_auteur TEXT, commentaire_auteur TEXT,
valide BOOLEAN NOT NULL DEFAULT FALSE, valide BOOLEAN NOT NULL DEFAULT FALSE,
corrige_inclu BOOLEAN NOT NULL DEFAULT FALSE corrige_inclu BOOLEAN NOT NULL DEFAULT FALSE,
date_televersement DATE NOT NULL DEFAULT CURRENT_DATE()
); );
CREATE TABLE IF NOT EXISTS documents ( CREATE TABLE IF NOT EXISTS documents (