Gestion des ajouts; Stockage dans le dossier Photos/ (En cours)
This commit is contained in:
parent
17b62e082c
commit
ff9de38dff
9 changed files with 428 additions and 35 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1 +1,3 @@
|
|||
tests/
|
||||
uploads/
|
||||
Photos
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
"BDD_USER": "root",
|
||||
"BDD_PASSWD": "root",
|
||||
"BDD_NAME": "intranet"
|
||||
"BDD_NAME": "intranet",
|
||||
"LOCAL_IMG_PREFIXE": "./Photos/INTRANET/"
|
||||
}
|
||||
|
|
@ -210,3 +210,35 @@ function verifyPoids($bdd, $username, $minPoids) {
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
function updateEventTitle($bdd, $eventid, $titre){
|
||||
$stmt = mysqli_prepare(
|
||||
$bdd,
|
||||
"UPDATE evenements SET titre = ? WHERE id = ?"
|
||||
);
|
||||
|
||||
mysqli_stmt_bind_param($stmt, "si", $titre, $eventid);
|
||||
mysqli_stmt_execute($stmt);
|
||||
|
||||
$success = mysqli_stmt_affected_rows($stmt) >= 0;
|
||||
|
||||
mysqli_stmt_close($stmt);
|
||||
|
||||
return $success;
|
||||
}
|
||||
|
||||
function updateEventImage($bdd, $eventId, $newFileName){
|
||||
$stmt = mysqli_prepare(
|
||||
$bdd,
|
||||
"UPDATE evenements SET couverture = ? WHERE id = ?"
|
||||
);
|
||||
|
||||
mysqli_stmt_bind_param($stmt, "si", $newFileName, $eventId);
|
||||
mysqli_stmt_execute($stmt);
|
||||
|
||||
$success = mysqli_stmt_affected_rows($stmt) >= 0;
|
||||
|
||||
mysqli_stmt_close($stmt);
|
||||
|
||||
return $success;
|
||||
}
|
||||
|
|
@ -22,6 +22,8 @@ if (!verifyPoids($bdd, $_SESSION['username'], $minPoids)) {
|
|||
header('location: ../index.php');
|
||||
}
|
||||
|
||||
$uploadDir = "../uploads/";
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
|
@ -62,7 +64,7 @@ if (!verifyPoids($bdd, $_SESSION['username'], $minPoids)) {
|
|||
<?php foreach ($events as $event): ?>
|
||||
<div class="card" onclick="window.location.href='./modifyEvent.php?id=<?= $event['id'] ?>'">
|
||||
<h4><?= $event['titre'] ?></h4>
|
||||
<img src="<?= $event['couverture'] ?>" alt="Image de couverture">
|
||||
<img src="<?= $uploadDir . $event['couverture'] ?>" alt="Image de couverture">
|
||||
Modifier
|
||||
</div>
|
||||
<?php endforeach ?>
|
||||
|
|
|
|||
|
|
@ -1,31 +1,66 @@
|
|||
<?php
|
||||
include("../Assets/functions.php");
|
||||
|
||||
$config = json_decode(file_get_contents("../Assets/config.json"), true);
|
||||
$bdd = connectBDD("localhost", $config["BDD_USER"], $config["BDD_PASSWD"], $config["BDD_NAME"]);
|
||||
$page = 'photos';
|
||||
|
||||
/* Gestion de la connexion */
|
||||
session_start();
|
||||
|
||||
if (!isset($_SESSION['connected']) || $_SESSION['connected'] == false) {
|
||||
header('location: login.php?redirect_to=./admin/');
|
||||
exit;
|
||||
}
|
||||
|
||||
$events = getEvenements($bdd, $_SESSION['site']);
|
||||
|
||||
/* Récupération des infos */
|
||||
$permissions = $_SESSION['permission'];
|
||||
$site = $_SESSION['site'];
|
||||
|
||||
/* Gestion de l'accès à la page */
|
||||
$minPoids = 45;
|
||||
if (!verifyPoids($bdd, $_SESSION['username'], $minPoids)) {
|
||||
header('location: ../index.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Récupération des infos de l'évènement */
|
||||
$titre = getEventName($bdd, $_GET['id']) ?? 'Titre?';
|
||||
$eventId = $_GET['id'] ?? null;
|
||||
if (!$eventId) {
|
||||
die("ID évènement manquant.");
|
||||
}
|
||||
$titre = getEventName($bdd, $eventId) ?? '';
|
||||
$couverture = getEventBigImage($bdd, $eventId) ?? '';
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
if (!empty($_POST['title'])) {
|
||||
updateEventTitle($bdd, $eventId, trim($_POST['title']));
|
||||
}
|
||||
|
||||
if (!empty($_FILES['couverture']['name'])) {
|
||||
$uploadDir = "../uploads/";
|
||||
$fileTmpPath = $_FILES["couverture"]["tmp_name"];
|
||||
$fileSize = $_FILES["couverture"]["size"];
|
||||
|
||||
/* Vérification MIME réelle */
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$mime = finfo_file($finfo, $fileTmpPath);
|
||||
finfo_close($finfo);
|
||||
|
||||
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
|
||||
|
||||
if (in_array($mime, $allowedTypes) && $fileSize <= 5 * 1024 * 1024) {
|
||||
|
||||
$extension = pathinfo($_FILES["couverture"]["name"], PATHINFO_EXTENSION);
|
||||
$newFileName = "event_" . $eventId . "_" . time() . "." . $extension;
|
||||
$destination = $uploadDir . $newFileName;
|
||||
|
||||
if (move_uploaded_file($fileTmpPath, $destination)) {
|
||||
if (!empty($couverture) && file_exists($uploadDir . $couverture)) {
|
||||
unlink($uploadDir . $couverture);
|
||||
}
|
||||
updateEventImage($bdd, $eventId, $newFileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
header("Location: ?id=" . $eventId);
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
|
|
@ -33,18 +68,33 @@ $titre = getEventName($bdd, $_GET['id']) ?? 'Titre?';
|
|||
<meta charset="UTF-8">
|
||||
<title>Gestion Intranet</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="../styles-scripts/index.admin.css">
|
||||
|
||||
<style>
|
||||
.preview-box {
|
||||
height: 220px;
|
||||
border: 2px dashed #ddd;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
.preview-box img {
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Gestion de l'intranet</h1>
|
||||
<!-- navbar -->
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<body class="container py-4">
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
<h1>Gestion de l'intranet</h1>
|
||||
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light mb-4">
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li class="nav-item">
|
||||
<a href="./index.php" class="nav-link">Évènements</a>
|
||||
|
|
@ -59,10 +109,85 @@ $titre = getEventName($bdd, $_GET['id']) ?? 'Titre?';
|
|||
</div>
|
||||
</nav>
|
||||
|
||||
<form action="" method="get">
|
||||
<label for="title">Titre de l'évènement</label>
|
||||
<input type="text" name="title" id="title" <?= ($titre ?? '') ? 'value=\''.$titre.'\'' : '' ?>>
|
||||
</form>
|
||||
<ul class="nav nav-tabs mb-3">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active"
|
||||
href="modifyEvent.php?id=<?= $eventId ?>">
|
||||
Général
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link"
|
||||
href="modifyGallery.php?id=<?= $eventId ?>">
|
||||
Galerie
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="card p-4">
|
||||
|
||||
<form action="" method="post" enctype="multipart/form-data">
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Titre de l'évènement</label>
|
||||
<input type="text"
|
||||
name="title"
|
||||
class="form-control"
|
||||
value="<?= htmlspecialchars($titre) ?>">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Image actuelle</label><br>
|
||||
<?php if (!empty($couverture)) : ?>
|
||||
<img src="../uploads/<?= htmlspecialchars($couverture) ?>"
|
||||
style="max-width:300px; margin-bottom:15px;">
|
||||
<?php else : ?>
|
||||
<p class="text-muted">Aucune image définie</p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Nouvelle image de couverture</label>
|
||||
|
||||
<div id="preview" class="preview-box mb-2">
|
||||
<span class="text-muted">Aucune image sélectionnée</span>
|
||||
</div>
|
||||
|
||||
<input type="file"
|
||||
name="couverture"
|
||||
id="couverture"
|
||||
class="form-control"
|
||||
accept="image/*">
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary">
|
||||
Enregistrer les modifications
|
||||
</button>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const input = document.getElementById('couverture');
|
||||
const preview = document.getElementById('preview');
|
||||
|
||||
input.addEventListener('change', function() {
|
||||
const file = this.files[0];
|
||||
|
||||
if (file) {
|
||||
const reader = new FileReader();
|
||||
|
||||
reader.onload = function(e) {
|
||||
preview.innerHTML =
|
||||
`<img src="${e.target.result}" alt="Preview">`;
|
||||
};
|
||||
|
||||
reader.readAsDataURL(file);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||
</body>
|
||||
|
|
|
|||
223
admin/modifyGallery.php
Normal file
223
admin/modifyGallery.php
Normal file
|
|
@ -0,0 +1,223 @@
|
|||
<?php
|
||||
include("../Assets/functions.php");
|
||||
|
||||
$config = json_decode(file_get_contents("../Assets/config.json"), true);
|
||||
$bdd = connectBDD("localhost", $config["BDD_USER"], $config["BDD_PASSWD"], $config["BDD_NAME"]);
|
||||
|
||||
session_start();
|
||||
|
||||
if (!isset($_SESSION['connected']) || $_SESSION['connected'] == false) {
|
||||
header('location: login.php?redirect_to=./admin/');
|
||||
exit;
|
||||
}
|
||||
|
||||
$minPoids = 45;
|
||||
if (!verifyPoids($bdd, $_SESSION['username'], $minPoids)) {
|
||||
header('location: ../index.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
$eventId = $_GET['id'] ?? null;
|
||||
|
||||
if (!$eventId) {
|
||||
die("ID évènement manquant.");
|
||||
}
|
||||
|
||||
$uploadDir = "../Photos/gallerie/";
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
|
||||
if (!empty($_FILES['images']['name'][0])) {
|
||||
|
||||
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
|
||||
|
||||
foreach ($_FILES['images']['tmp_name'] as $key => $tmpName) {
|
||||
|
||||
$fileSize = $_FILES['images']['size'][$key];
|
||||
|
||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||
$mime = finfo_file($finfo, $tmpName);
|
||||
finfo_close($finfo);
|
||||
|
||||
if (in_array($mime, $allowedTypes) && $fileSize <= 5 * 1024 * 1024) {
|
||||
|
||||
$extension = pathinfo($_FILES['images']['name'][$key], PATHINFO_EXTENSION);
|
||||
|
||||
$newFileName = "gallery_" . $eventId . "_" . time() . "_" . $key . "." . $extension;
|
||||
|
||||
if (move_uploaded_file($tmpName, $uploadDir . $newFileName)) {
|
||||
|
||||
mysqli_query(
|
||||
$bdd,
|
||||
"INSERT INTO gallerie (event_id, chemin, texte)
|
||||
VALUES ('$eventId','$newFileName','')"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
header("Location: ?id=" . $eventId);
|
||||
exit;
|
||||
}
|
||||
|
||||
if (isset($_GET['delete'])) {
|
||||
|
||||
$file = basename($_GET['delete']);
|
||||
|
||||
mysqli_query(
|
||||
$bdd,
|
||||
"DELETE FROM gallerie
|
||||
WHERE event_id='$eventId'
|
||||
AND chemin='$file'"
|
||||
);
|
||||
|
||||
if (file_exists($uploadDir . $file)) {
|
||||
unlink($uploadDir . $file);
|
||||
}
|
||||
|
||||
header("Location: ?id=" . $eventId);
|
||||
exit;
|
||||
}
|
||||
|
||||
$result = mysqli_query(
|
||||
$bdd,
|
||||
"SELECT chemin FROM gallerie WHERE event_id='$eventId'"
|
||||
);
|
||||
|
||||
$images = [];
|
||||
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
$images[] = $row;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<title>Galerie évènement</title>
|
||||
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
.gallery-img {
|
||||
height: 180px;
|
||||
object-fit: cover;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="container py-4">
|
||||
|
||||
<h1>Gestion de l'intranet</h1>
|
||||
|
||||
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light mb-4">
|
||||
|
||||
<div class="collapse navbar-collapse">
|
||||
|
||||
<ul class="navbar-nav mr-auto">
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="./index.php" class="nav-link">Évènements</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="#" class="nav-link">Actualités</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="#" class="nav-link disabled">Administration</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
<ul class="nav nav-tabs mb-4">
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link"
|
||||
href="modifyEvent.php?id=<?= $eventId ?>">
|
||||
Général
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active">
|
||||
Galerie
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<div class="card p-4 mb-4">
|
||||
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
|
||||
<label class="form-label">Ajouter des images</label>
|
||||
|
||||
<input type="file"
|
||||
name="images[]"
|
||||
class="form-control mb-3"
|
||||
multiple
|
||||
accept="image/*">
|
||||
|
||||
<button class="btn btn-primary">
|
||||
Uploader
|
||||
</button>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<?php foreach ($images as $img): ?>
|
||||
|
||||
<div class="col-md-3 mb-4">
|
||||
|
||||
<div class="card">
|
||||
|
||||
<img src="../Photos/gallerie/<?= htmlspecialchars($img['chemin']) ?>"
|
||||
class="card-img-top gallery-img">
|
||||
|
||||
<div class="card-body text-center">
|
||||
|
||||
<a href="?id=<?= $eventId ?>&delete=<?= urlencode($img['chemin']) ?>"
|
||||
class="btn btn-danger btn-sm"
|
||||
onclick="return confirm('Supprimer cette image ?')">
|
||||
|
||||
Supprimer
|
||||
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -8,6 +8,8 @@ session_start();
|
|||
if(!isset($_SESSION['connected']) || !isset($_SESSION['site']) || !$_SESSION['connected']){
|
||||
header('location: ./event.php');
|
||||
}
|
||||
|
||||
$prefixe = $config["LOCAL_IMG_PREFIXE"]."gallerie/";
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
|
@ -29,7 +31,7 @@ if(!isset($_SESSION['connected']) || !isset($_SESSION['site']) || !$_SESSION['co
|
|||
$images = getEventImages($bdd, $_GET['event']);
|
||||
foreach($images as $image): ?>
|
||||
<div class="slide fade">
|
||||
<img src="<?php echo $image["chemin"]; ?>" alt="Diapo">
|
||||
<img src="<?php echo $prefixe.$image["chemin"]; ?>" alt="Diapo">
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ if (!isset($_SESSION['connected']) || $_SESSION['connected'] == false) {
|
|||
$titre = getEventName($bdd, $_GET['event']);
|
||||
$images = getEventImages($bdd, $_GET['event']);
|
||||
$couvertureImg = getEventBigImage($bdd, $_GET['event']);
|
||||
$prefixe = $config["LOCAL_IMG_PREFIXE"]."gallerie/";
|
||||
|
||||
?>
|
||||
<!doctype html>
|
||||
|
|
@ -77,7 +78,7 @@ $couvertureImg = getEventBigImage($bdd, $_GET['event']);
|
|||
<div class="custom-grid-container">
|
||||
<?php
|
||||
$nbColumns = 4;
|
||||
$rowsPerColumn = 5;
|
||||
$rowsPerColumn = count($images)/3;
|
||||
$columns = [];
|
||||
|
||||
/**
|
||||
|
|
@ -116,7 +117,7 @@ $couvertureImg = getEventBigImage($bdd, $_GET['event']);
|
|||
$placed = false;
|
||||
|
||||
foreach ($images as $img) {
|
||||
if (canPlace($columns, $col, $row, $img['chemin'])) {
|
||||
if (canPlace($columns, $col, $row, $prefixe . $img['chemin'])) {
|
||||
$columns[$col][$row] = $img['chemin'];
|
||||
$placed = true;
|
||||
break;
|
||||
|
|
@ -124,7 +125,7 @@ $couvertureImg = getEventBigImage($bdd, $_GET['event']);
|
|||
}
|
||||
|
||||
if (!$placed && !empty($images)) {
|
||||
$columns[$col][$row] = $images[0]['chemin'];
|
||||
$columns[$col][$row] = $prefixe.$images[0]['chemin'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -133,7 +134,7 @@ $couvertureImg = getEventBigImage($bdd, $_GET['event']);
|
|||
for ($col = 0; $col < $nbColumns; $col++): ?>
|
||||
<div class="custom-column">
|
||||
<?php foreach ($columns[$col] as $imgPath): ?>
|
||||
<img src="<?= $imgPath ?>" alt="Image évènement">
|
||||
<img src="<?= $prefixe.$imgPath ?>" alt="Image évènement">
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endfor; ?>
|
||||
|
|
|
|||
13
photos.php
13
photos.php
|
|
@ -12,6 +12,7 @@ if(!isset($_SESSION['connected']) || $_SESSION['connected'] == false){
|
|||
|
||||
/* Récupération des évènements */
|
||||
$evenements = getEvenements($bdd, $_SESSION['site']);
|
||||
$prefixe = $config['LOCAL_IMG_PREFIXE']
|
||||
|
||||
?>
|
||||
<!doctype html>
|
||||
|
|
@ -31,32 +32,36 @@ $evenements = getEvenements($bdd, $_SESSION['site']);
|
|||
|
||||
<div class="parent">
|
||||
<div class="div1">
|
||||
<?php $debut = str_starts_with($evenements[0]["couverture"], "http") ? '' : $prefixe; ?>
|
||||
<a href="./event.php?event=<?= $evenements[0]["id"] ?>">
|
||||
<img src="<?= $evenements[0]["couverture"] ?>" alt="">
|
||||
<img src="<?= $debut . $evenements[0]["couverture"] ?>" alt="">
|
||||
<div class="overlay">
|
||||
<p><?= $evenements[0]["titre"] ?></p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="div2">
|
||||
<?php $debut = str_starts_with($evenements[1]["couverture"], "http") ? '' : $prefixe; ?>
|
||||
<a href="./event.php?event=<?= $evenements[1]["id"] ?>">
|
||||
<img src="<?= $evenements[1]["couverture"] ?>" alt="">
|
||||
<img src="<?= $debut . $evenements[1]["couverture"] ?>" alt="">
|
||||
<div class="overlay">
|
||||
<p><?= $evenements[1]["titre"] ?></p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="div3">
|
||||
<?php $debut = str_starts_with($evenements[2]["couverture"], "http") ? '' : $prefixe; ?>
|
||||
<a href="./event.php?event=<?= $evenements[2]["id"] ?>">
|
||||
<img src="<?= $evenements[2]["couverture"] ?>" alt="">
|
||||
<img src="<?= $debut . $evenements[2]["couverture"] ?>" alt="">
|
||||
<div class="overlay">
|
||||
<p><?= $evenements[2]["titre"] ?></p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="div4">
|
||||
<?php $debut = str_starts_with($evenements[3]["couverture"], "http") ? '' : $prefixe; ?>
|
||||
<a href="./event.php?event=<?= $evenements[3]["id"] ?>">
|
||||
<img src="<?= $evenements[3]["couverture"] ?>" alt="">
|
||||
<img src="<?= $debut . $evenements[3]["couverture"] ?>" alt="">
|
||||
<div class="overlay">
|
||||
<p><?= $evenements[3]["titre"] ?></p>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in a new issue