Ajout des écoles + changement CSS
This commit is contained in:
+124
-3
@@ -10,6 +10,9 @@ require_once '../functions/databaseConnection.php';
|
||||
require_once("../functions/listUser.php");
|
||||
require_once('../functions/listProject.php');
|
||||
require_once('../functions/listXP.php');
|
||||
require_once('../functions/listSchool.php');
|
||||
require_once('../functions/listSkills.php');
|
||||
require_once('../functions/listSettings.php');
|
||||
|
||||
|
||||
// L'utilisateur doit être administrateur
|
||||
@@ -21,15 +24,28 @@ if (!isset($_SESSION['role']) || $_SESSION['role'] !== 'admin') {
|
||||
// On met les variables à null ici pour éviter qu'il garde les options en premier chargement
|
||||
$projetAModifier = null;
|
||||
$xpAModifier = null;
|
||||
$ecoleAModifier = null;
|
||||
$skillAModifier = null;
|
||||
|
||||
|
||||
// Si on modifie XP ou Projets
|
||||
// Si on modifie XP, Projets, École ou Compétence
|
||||
if (isset($_GET['edit_project']) && is_numeric($_GET['edit_project'])) {
|
||||
$projetAModifier = recupererProjetParId((int) $_GET['edit_project']);
|
||||
}
|
||||
if (isset($_GET['edit_xp']) && is_numeric($_GET['edit_xp'])) {
|
||||
$xpAModifier = recupererXPParId((int) $_GET['edit_xp']);
|
||||
}
|
||||
if (isset($_GET['edit_school']) && is_numeric($_GET['edit_school'])) {
|
||||
$ecoleAModifier = recupererEcoleParId((int) $_GET['edit_school']);
|
||||
}
|
||||
if (isset($_GET['edit_skill']) && is_numeric($_GET['edit_skill'])) {
|
||||
$skillAModifier = recupererSkillParId((int) $_GET['edit_skill']);
|
||||
}
|
||||
|
||||
// Valeurs actuelles de la notification de la page d'accueil
|
||||
$noticeTitle = recupererSetting('site_notice_title') ?? '';
|
||||
$noticeText = recupererSetting('site_notice_text') ?? '';
|
||||
$noticeEnabled = recupererSetting('site_notice_enabled') ?? '1';
|
||||
|
||||
// Page du panneau d'administration
|
||||
?>
|
||||
@@ -103,7 +119,105 @@ if (isset($_GET['edit_xp']) && is_numeric($_GET['edit_xp'])) {
|
||||
<input type="url" name="imageurl" placeholder="https://..." required value="<?php echo $xpAModifier ? htmlspecialchars($xpAModifier['image_url']) : ''; ?>">
|
||||
|
||||
<input type="submit" name="submitxp" value="<?php echo $xpAModifier ? 'Modifier l\'experience' : '+ Ajouter l\'experience'; ?>" class="btn-submit">
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Formulaire de création d'école / formation -->
|
||||
<div class="project-container">
|
||||
<div class="project-form-card">
|
||||
|
||||
<div class="project-header">
|
||||
<h2><?php echo $ecoleAModifier ? 'Modifier l\'école' : 'Nouvelle école'; ?></h2>
|
||||
</div>
|
||||
|
||||
<!-- on envoie les données à addSchool.php -->
|
||||
<form method="POST" action="<?php echo $ecoleAModifier ? '../scripts/updateSchool.php' : '../scripts/addSchool.php'; ?>">
|
||||
|
||||
<?php if ($ecoleAModifier): ?>
|
||||
<input type="hidden" name="id" value="<?php echo (int) $ecoleAModifier['id']; ?>">
|
||||
<?php endif; ?>
|
||||
|
||||
<label>Nom de l'école *</label>
|
||||
<input type="text" name="title" required value="<?php echo $ecoleAModifier ? htmlspecialchars($ecoleAModifier['title']) : ''; ?>">
|
||||
|
||||
<label>Tags (virgules)</label>
|
||||
<input type="text" name="tags" value="<?php echo $ecoleAModifier ? htmlspecialchars($ecoleAModifier['tags']) : ''; ?>">
|
||||
|
||||
<label>Description (diplôme, spécialité...) *</label>
|
||||
<textarea name="description" required><?php echo $ecoleAModifier ? htmlspecialchars($ecoleAModifier['description']) : ''; ?></textarea>
|
||||
|
||||
<label>Période (ex : 2023 - 2025) *</label>
|
||||
<input type="text" name="duration" required value="<?php echo $ecoleAModifier ? htmlspecialchars($ecoleAModifier['duration']) : ''; ?>">
|
||||
|
||||
<label>Lien de l'image *</label>
|
||||
<input type="url" name="imageurl" placeholder="https://..." required value="<?php echo $ecoleAModifier ? htmlspecialchars($ecoleAModifier['image_url']) : ''; ?>">
|
||||
|
||||
<input type="submit" name="submitschool" value="<?php echo $ecoleAModifier ? 'Modifier l\'école' : '+ Ajouter l\'école'; ?>" class="btn-submit">
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Formulaire de création de catégorie de compétences -->
|
||||
<div class="project-container">
|
||||
<div class="project-form-card">
|
||||
|
||||
<div class="project-header">
|
||||
<h2><?php echo $skillAModifier ? 'Modifier la compétence' : 'Nouvelle compétence'; ?></h2>
|
||||
</div>
|
||||
|
||||
<!-- on envoie les données à addSkill.php -->
|
||||
<form method="POST" action="<?php echo $skillAModifier ? '../scripts/updateSkill.php' : '../scripts/addSkill.php'; ?>">
|
||||
|
||||
<?php if ($skillAModifier): ?>
|
||||
<input type="hidden" name="id" value="<?php echo (int) $skillAModifier['id']; ?>">
|
||||
<?php endif; ?>
|
||||
|
||||
<label>Titre de la catégorie *</label>
|
||||
<input type="text" name="title" required value="<?php echo $skillAModifier ? htmlspecialchars($skillAModifier['title']) : ''; ?>">
|
||||
|
||||
<label>Icône de la catégorie (classes Font Awesome, ex : fa-solid fa-terminal)</label>
|
||||
<input type="text" name="icon" placeholder="fa-solid fa-star" value="<?php echo $skillAModifier ? htmlspecialchars($skillAModifier['icon']) : ''; ?>">
|
||||
|
||||
<label>Compétences (une par ligne, format : "icone|texte" ou juste "texte") *</label>
|
||||
<textarea name="items" placeholder="fa-brands fa-python|Python fa-solid fa-terminal|Bash Ansible" required><?php echo $skillAModifier ? htmlspecialchars($skillAModifier['items']) : ''; ?></textarea>
|
||||
|
||||
<label>Position (ordre d'affichage, du plus petit au plus grand)</label>
|
||||
<input type="text" name="position" value="<?php echo $skillAModifier ? (int) $skillAModifier['position'] : '0'; ?>">
|
||||
|
||||
<input type="submit" name="submitskill" value="<?php echo $skillAModifier ? 'Modifier la compétence' : '+ Ajouter la compétence'; ?>" class="btn-submit">
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Formulaire de la notification de la page d'accueil -->
|
||||
<div class="project-container">
|
||||
<div class="project-form-card">
|
||||
|
||||
<div class="project-header">
|
||||
<h2>Notification de la page d'accueil</h2>
|
||||
</div>
|
||||
|
||||
<!-- on envoie les données à updateSettings.php -->
|
||||
<form method="POST" action="../scripts/updateSettings.php">
|
||||
|
||||
<label>Titre (affiché en gras)</label>
|
||||
<input type="text" name="notice_title" value="<?php echo htmlspecialchars($noticeTitle); ?>">
|
||||
|
||||
<label>Texte</label>
|
||||
<textarea name="notice_text"><?php echo htmlspecialchars($noticeText); ?></textarea>
|
||||
|
||||
<!-- Checkbox pour activer / désactiver la notification sans la supprimer -->
|
||||
<label class="checkbox-row">
|
||||
<input type="checkbox" name="notice_enabled" value="1" <?php echo $noticeEnabled === '1' ? 'checked' : ''; ?>>
|
||||
Afficher la notification sur la page d'accueil
|
||||
</label>
|
||||
|
||||
<input type="submit" name="submitsettings" value="Enregistrer la notification" class="btn-submit">
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -116,7 +230,14 @@ if (isset($_GET['edit_xp']) && is_numeric($_GET['edit_xp'])) {
|
||||
<h2 class="projects-title">Gérer les projets</h2>
|
||||
<?php afficherProjetsAdmin(); ?>
|
||||
<h2 class="projects-title">Gérer les experiences</h2>
|
||||
<?php afficherXPAdmin();
|
||||
<?php afficherXPAdmin(); ?>
|
||||
<h2 class="projects-title">Gérer les écoles</h2>
|
||||
<?php afficherEcolesAdmin(); ?>
|
||||
<h2 class="projects-title">Gérer les compétences</h2>
|
||||
<section class="skills-section skills-section-admin">
|
||||
<?php afficherSkillsAdmin(); ?>
|
||||
</section>
|
||||
<?php
|
||||
|
||||
// Création de compte
|
||||
?>
|
||||
|
||||
+4
-9
@@ -9,17 +9,12 @@ $pageTitle = 'Accueil';
|
||||
// Insertion du header
|
||||
require_once('./../elements/header.php');
|
||||
|
||||
// Ajout d'un texte pour rappeller aux utilisateurs de la démo de vider le cache si du CSS s'affiche mal
|
||||
|
||||
//Si du CSS / ou des images s'affichent mal, il faut penser à vider le cache, version de développement uniquement.
|
||||
// La notification est maintenant dynamique : modifiable depuis le panel Admin (table settings)
|
||||
require_once('../functions/listSettings.php');
|
||||
|
||||
// Affichage de la notification (si elle est activée dans le panel Admin)
|
||||
afficherNotice();
|
||||
?>
|
||||
<!-- Message d'alerte pour les utilisateurs de la démo -->
|
||||
<p class="dev-cache-notice">
|
||||
<strong>Version de développement uniquement.</strong>
|
||||
Si le CSS ou les images s'affichent mal, pensez à vider le cache de votre navigateur
|
||||
(Ctrl + F5 ou Cmd + Shift + R) pour voir les dernières modifications.
|
||||
</p>
|
||||
|
||||
<!-- Section hero : présentation rapide -->
|
||||
<section class="hero">
|
||||
|
||||
+11
-90
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
// Compétences
|
||||
// Compétences : le contenu est maintenant dynamique, géré depuis le panel Admin (table skills)
|
||||
|
||||
// Titre de l'onglet
|
||||
$pageTitle = 'Compétences';
|
||||
@@ -8,6 +8,11 @@ $pageTitle = 'Compétences';
|
||||
// On ajoute ici le header
|
||||
require_once('./../elements/header.php');
|
||||
|
||||
// Ajout d'un message indiquant si l'utilisateur est admin qu'il peut modifier ces compétences
|
||||
if (isset($_SESSION['role']) && $_SESSION['role'] === 'admin') {
|
||||
echo "<p class='admin-notice'>Vous êtes administrateur, vous pouvez modifier les compétences <a href='../pages/admin.php'>ici</a>.</p>";
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<!-- Contenu de la page skills -->
|
||||
@@ -18,96 +23,12 @@ require_once('./../elements/header.php');
|
||||
<p>Un aperçu des technologies et des domaines que je maîtrise.</p>
|
||||
</div>
|
||||
|
||||
<div class="skills-grid">
|
||||
<?php
|
||||
require_once('../functions/listSkills.php');
|
||||
|
||||
<!-- Systèmes d'exploitation -->
|
||||
<div class="skill-category">
|
||||
<div class="skill-category-icon">
|
||||
<i class="fa-solid fa-computer"></i>
|
||||
</div>
|
||||
<h2>Systèmes d'exploitation</h2>
|
||||
<ul class="skill-list">
|
||||
<li><i class="fa-brands fa-microsoft"></i> Windows (Serveur/XP/8/10/11)</li>
|
||||
<li><i class="fa-brands fa-linux"></i> Linux (Debian/Ubuntu)</li>
|
||||
<li><i class="fa-brands fa-apple"></i> macOS</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Réseaux -->
|
||||
<div class="skill-category">
|
||||
<div class="skill-category-icon">
|
||||
<i class="fa-solid fa-network-wired"></i>
|
||||
</div>
|
||||
<h2>Réseaux</h2>
|
||||
<ul class="skill-list">
|
||||
<li><i class="fa-solid fa-location-dot"></i> Adressage IP</li>
|
||||
<li><i class="fa-solid fa-diagram-project"></i> VLAN</li>
|
||||
<li><i class="fa-solid fa-shield-halved"></i> Pare-feu (iptables/ufw)</li>
|
||||
<li><i class="fa-solid fa-globe"></i> DNS (Bind9)</li>
|
||||
<li><i class="fa-solid fa-server"></i> DHCP (ISC DHCP)</li>
|
||||
<li><i class="fa-solid fa-arrows-left-right"></i> Proxy (Squid)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Scripting -->
|
||||
<div class="skill-category">
|
||||
<div class="skill-category-icon">
|
||||
<i class="fa-solid fa-terminal"></i>
|
||||
</div>
|
||||
<h2>Scripting</h2>
|
||||
<ul class="skill-list">
|
||||
<li><i class="fa-solid fa-terminal"></i> Bash</li>
|
||||
<li><i class="fa-brands fa-python"></i> Python</li>
|
||||
<li><i class="fa-brands fa-java"></i> Java</li>
|
||||
<li><i class="fa-solid fa-gears"></i> Ansible</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Applications -->
|
||||
<div class="skill-category">
|
||||
<div class="skill-category-icon">
|
||||
<i class="fa-solid fa-cubes"></i>
|
||||
</div>
|
||||
<h2>Applications</h2>
|
||||
<ul class="skill-list">
|
||||
<li><i class="fa-solid fa-address-book"></i> LDAP (Windows AD)</li>
|
||||
<li><i class="fa-solid fa-headset"></i> GLPI</li>
|
||||
<li><i class="fa-solid fa-compact-disc"></i> FOG</li>
|
||||
<li><i class="fa-solid fa-server"></i> Nginx / Apache</li>
|
||||
<li><i class="fa-brands fa-docker"></i> Docker</li>
|
||||
<li><i class="fa-solid fa-display"></i> Guacamole</li>
|
||||
<li><i class="fa-solid fa-database"></i> MySQL / MariaDB</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Développement web -->
|
||||
<div class="skill-category">
|
||||
<div class="skill-category-icon">
|
||||
<i class="fa-solid fa-code"></i>
|
||||
</div>
|
||||
<h2>Développement web</h2>
|
||||
<ul class="skill-list">
|
||||
<li><i class="fa-brands fa-html5"></i> HTML</li>
|
||||
<li><i class="fa-brands fa-css3-alt"></i> CSS</li>
|
||||
<li><i class="fa-brands fa-js"></i> JavaScript</li>
|
||||
<li><i class="fa-brands fa-php"></i> PHP</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Virtualisation & Outils -->
|
||||
<div class="skill-category">
|
||||
<div class="skill-category-icon">
|
||||
<i class="fa-solid fa-layer-group"></i>
|
||||
</div>
|
||||
<h2>Virtualisation & Outils</h2>
|
||||
<ul class="skill-list">
|
||||
<li><i class="fa-solid fa-server"></i> Proxmox</li>
|
||||
<li><i class="fa-solid fa-box"></i> VirtualBox</li>
|
||||
<li><i class="fa-brands fa-git-alt"></i> Git (GitHub, Gitea)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
// Appel de ma fonction dans Functions/listSkills.php
|
||||
afficherSkills();
|
||||
?>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
@@ -27,6 +27,22 @@ require_once('../functions/listXP.php');
|
||||
|
||||
// Appel de ma fonction dans Functions/listXP.php
|
||||
afficherXP();
|
||||
require_once('../functions/listSchool.php');
|
||||
|
||||
// Section écoles / formations, en dessous des expériences professionnelles
|
||||
// On n'affiche le titre que s'il y a au moins une école (table remplie)
|
||||
if (!empty(listeEcoles())) {
|
||||
?>
|
||||
|
||||
<div class="page-header">
|
||||
<h2>Mes écoles</h2>
|
||||
<p>Mon parcours scolaire et mes formations.</p>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
// Appel de ma fonction dans Functions/listSchool.php
|
||||
afficherEcoles();
|
||||
}
|
||||
|
||||
// Ajout du footer
|
||||
require_once('../elements/footer.php'); ?>
|
||||
|
||||
Reference in New Issue
Block a user