<?php function age($date): int { $date = new DateTime($date); $now = new DateTime(); $interval = $now->diff($date); return $interval->y; } try { $error = false; $dbh = new PDO('mysql:host=saeweb2022.souidi.fr;dbname=saeweb2022', "saeweb2022"); $url = parse_url($_SERVER["REQUEST_URI"])["path"]; if (str_ends_with($url, "/")) { $url = substr($url, 0, -1); } $url = explode("/", $url); if (end($url) == "team") { $mode = "list"; $employees = array(); foreach($dbh->query('SELECT name, jobTitle, slug FROM employee;') as $row) { $employees[] = $row; } } else { $mode = "view"; $sth = $dbh->prepare("SELECT name, jobTitle, birthdate, email FROM employee WHERE employee.slug = ?;"); $sth->execute([end($url)]); $employee = $sth->fetch(PDO::FETCH_ASSOC); if (empty($employee)) { http_response_code(404); $error = "notfound"; } if (isset($_GET["articles"])) { $mode = "articles"; $sth = $dbh->prepare("SELECT article.title, article.slug, article.created_at, article.excerpt FROM article JOIN employee ON article.author=employee.id WHERE employee.slug = ? ORDER BY article.created_at DESC;"); $sth->execute([end($url)]); $employee["articles"] = $sth->fetchAll(PDO::FETCH_ASSOC); } else { $employee['age'] = age($employee['birthdate']); $sth = $dbh->prepare("SELECT social.name, social.url FROM employee_social social JOIN employee ON social.employeeId=employee.id WHERE employee.slug = ?;"); $sth->execute([end($url)]); $employee["socials"] = $sth->fetchAll(PDO::FETCH_ASSOC); $employee['cv'] = array('formation' => array(), 'work' => array(), 'language' => array(), 'skill' => array(), 'project' => array()); if (isset($_GET["cv"])) { $mode = "cv"; $sth = $dbh->prepare("SELECT cv.type, cv.title, cv.description, cv.link FROM cv JOIN employee ON cv.employeeId=employee.id WHERE employee.slug = ? ORDER BY cv.priority;"); $sth->execute([end($url)]); foreach ($sth->fetchAll(PDO::FETCH_ASSOC) as $e) { if ($e['type'] == "skill") { $employee['cv'][$e['type']][$e['title']][] = $e['description']; } else { $employee['cv'][$e['type']][] = array( 'title' => $e['title'], 'description' => $e['description'], 'link' => $e['link'] ); } } } else { $sth = $dbh->prepare("SELECT article.title, article.slug, article.created_at, article.excerpt FROM article JOIN employee ON article.author=employee.id WHERE employee.slug = ? ORDER BY article.created_at DESC LIMIT 2;"); $sth->execute([end($url)]); $employee["articles"] = $sth->fetchAll(PDO::FETCH_ASSOC); $sth = $dbh->prepare("SELECT cv.title, cv.description, cv.link FROM cv JOIN employee ON cv.employeeId=employee.id WHERE employee.slug = ? AND cv.type = 'formation' ORDER BY cv.priority LIMIT 1;"); $sth->execute([end($url)]); foreach ($sth->fetchAll(PDO::FETCH_ASSOC) as $e) { $employee['cv']['formation'][] = array( 'title' => $e['title'], 'description' => $e['description'], 'link' => $e['link'] ); } } } $sth = null; } $dbh = null; } catch (PDOException) { http_response_code(503); $error = "db"; } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" href="../assets/img/favicon_dark.ico" media="(prefers-color-scheme: light)"> <link rel="icon" href="../assets/img/favicon_light.ico" media="(prefers-color-scheme: dark)"> <?php if ($mode == 'list') { echo '<title>Équipe - Elite Solar</title>'; echo '<meta property="og:title" content="Équipe - Elite Solar">'; echo '<meta name="description" content="L\équipe d\Elite Solar">'; echo '<meta property="og:description" content="L\équipe d\Elite Solar">'; } elseif ($mode == 'view') { echo '<title>'. $employee['name'] .' - Elite Solar</title>'; echo '<meta property="og:title" content="'. $employee['name'] .' - Elite Solar">'; echo '<meta name="description" content="'. $employee['name'] .' chez Elite Solar">'; echo '<meta property="og:description" content="'. $employee['name'] .' chez Elite Solar">'; } elseif ($mode == 'articles') { echo '<title>Articles de '. $employee['name'] .' - Elite Solar</title>'; echo '<meta property="og:title" content="Articles de '. $employee['name'] .' - Elite Solar">'; echo '<meta name="description" content="Articles de '. $employee['name'] .' chez Elite Solar">'; echo '<meta property="og:description" content="Articles de '. $employee['name'] .' chez Elite Solar">'; } elseif ($mode == 'cv') { echo '<title>CV de '. $employee['name'] .' - Elite Solar</title>'; echo '<meta property="og:title" content="CV de '. $employee['name'] .' - Elite Solar">'; echo '<meta name="description" content="CV de '. $employee['name'] .'">'; echo '<meta property="og:description" content="CV de '. $employee['name'] .'">'; } ?> <meta property="og:type" content="website"> <meta property="og:site_name" content="Elite Solar"> <meta property="og:locale" content="fr_FR"> <link rel="stylesheet" href="../assets/css/style.css"> <link rel="stylesheet" href="../assets/css/header.css"> <link rel="stylesheet" href="../assets/css/footer.css"> <link rel="stylesheet" href="../assets/css/team.css"> <script src="../assets/js/header.js"></script> </head> <body> <header> <div> <a href="../"><img id="logo" src="../assets/img/logo_noir.png" height="60" alt="Elite Solar"></a> <img id="burger-menu" alt="Menu" onclick="burgerMenu()" src="../assets/img/open-menu.svg"> <nav> <ul id="menu" class="invisible"> <li><a href="../">Accueil</a></li> <li><a href="../about">Qui sommes-nous ?</a></li> <li><a href="../product">Produit</a></li> <li><a href="../contact">Contact</a></li> <li><a href="../faq">FAQ</a></li> </ul> </nav> </div> </header> <main> <?php if ($error == "db") { echo '<nav class="crumbs"> <ol> <li class="crumb"><a href="../">Accueil</a></li> <li class="crumb">Équipe</li> </ol> </nav> <p>Une erreur est survenue lors du chargement de la page.</p>'; } elseif ($error == "notfound") { echo '<nav class="crumbs"> <ol> <li class="crumb"><a href="../">Accueil</a></li> <li class="crumb"><a href="./">Équipe</a></li> <li class="crumb">Employé</li> </ol> </nav>' . "<h1>Page introuvable</h1> <p>La page que vous cherchez à atteindre ne peut pas être trouvée. Il est possible qu'elle ait été supprimée ou déplacée. Si vous avez saisi manuellement son adresse, veuillez vérifier une éventuelle erreur de saisie.</p><br> <p><a href='../../'>Retour à la page d'accueil</a></p>"; } else { if ($mode == 'list') { echo '<nav class="crumbs"> <ol> <li class="crumb"><a href="../">Accueil</a></li> <li class="crumb">Équipe</li> </ol> </nav>' . "<h1>Notre équipe</h1><br><div id='team'>"; foreach ($employees as $employee) { echo '<div> <a href="' . $employee['slug'] . '"><h2>' . $employee['name'] . '</h2></a> <p>' . $employee['jobTitle'] . '</p> </div>'; } echo "</div>"; echo"<br><p id='join'>Vous souhaitez rejoindre notre équipe ? Contactez-nous par mail à l'adresse suivante : <a href='mailto:elitesolar.contact77@gmail.com'>elitesolar.contact77@gmail.com</a></p>"; } elseif ($mode == 'view') { echo '<nav class="crumbs"> <ol> <li class="crumb"><a href="../">Accueil</a></li> <li class="crumb"><a href="./">Équipe</a></li> <li class="crumb">' . $employee["name"] . '</li> </ol> </nav>' . "<h1>" . $employee["name"] . "</h1>"; echo "<h2>" . $employee["age"] . " ans | " . $employee["jobTitle"] . "</h2>"; echo '<ul id="social">'; foreach ($employee["socials"] as $social) { echo '<li><a target="_blank" href="https://' . $social["url"] . '"><img src="../assets/img/' . $social["name"] . '.svg" width="30" height="30" alt="' . $social["name"] . '"></a></li>'; } echo '</ul>'; echo "<h2>Articles récents (<a href='?articles'>Voir tout</a>)</h2>"; if (empty($employee["articles"])) echo '<p>Aucun article.</p>'; echo '<ul id="articles">'; foreach ($employee["articles"] as $article) { $date = new DateTime($article['created_at']); echo '<li><a href="../blog/' . $article["slug"] . '">' . $article["title"] . '</a><br> Date : ' . $date->format('d/m/Y') . '<br> Extrait : ' . $article["excerpt"] . '</li>'; } echo '</ul>'; echo '<div id="formation"><h2>Formation (<a href="?cv">Voir le CV</a>)</h2>'; if (empty($employee["cv"]["formation"])) echo '<p>Aucune formation enregistrée.</p>'; foreach ($employee["cv"]["formation"] as $formation) { echo '<b>' . $formation["title"] . '</b><ul><li>' . $formation["description"] . '</li></ul>'; } echo '</div>'; } elseif ($mode == "cv") { echo '<nav class="crumbs"> <ol> <li class="crumb"><a href="../">Accueil</a></li> <li class="crumb"><a href="./">Équipe</a></li> <li class="crumb"><a href="./' . end($url) . '">' . $employee["name"] . '</a></li> <li class="crumb">CV</li> </ol> </nav>' . "<h1> CV de <a href='./" . end($url) . "'>" . $employee["name"] . "</a></h1>"; echo "<div id='cv'><div class='left'>"; echo "<h2>Informations</h2>" . "<ul> <li><b>Âge :</b> " . $employee["age"] . "</li> <li><b>Adresse électronique :</b> " . $employee["email"] . "</li>"; foreach ($employee["socials"] as $social) { if ($social["name"] == "linkedin" || $social["name"] == "github") { echo "<li><a target='_blank' href='https://". $social['url'] ."'>" . $social["url"] . "</a></li>"; } } echo "</ul>"; echo '<div id="formation"><h2>Formation</h2><div>'; if (empty($employee["cv"]["formation"])) echo '<p>Aucune formation enregistrée.</p>'; foreach ($employee["cv"]["formation"] as $formation) { echo '<b>' . $formation["title"] . '</b><ul><li>' . $formation["description"] . '</li></ul>'; } echo '</div></div>'; echo '<div id="work"><h2>Expérience</h2><div>'; if (empty($employee["cv"]["work"])) echo '<p>Aucune expérience enregistrée.</p>'; foreach ($employee["cv"]["work"] as $work) { echo '<b>' . $work["title"] . '</b><ul><li>' . $work["description"] . '</li></ul>'; } echo '</div></div>'; echo '<div id="language"><h2>Langues</h2><div>'; if (empty($employee["cv"]["language"])) echo '<p>Aucune langue enregistrée.</p>'; echo '<ul>'; foreach ($employee["cv"]["language"] as $language) { echo '<li><b>' . $language["title"] . '</b> : ' . $language["description"] . '</li>'; } echo '</ul></div></div></div>'; echo '<div class="right"><div id="skill"><h2>Compétences</h2>'; if (empty($employee["cv"]["skill"])) echo '<div><p>Aucune compétence enregistrée.</p></div>'; while ($skill = current($employee["cv"]["skill"])) { echo '<div><b>' . key($employee["cv"]["skill"]) . '</b><ul><li>'; echo implode('</li><li>', $skill); echo '</li></ul></div>'; next($employee["cv"]["skill"]); } echo '</div>'; echo '<div id="project"><h2>Projets</h2>'; if (empty($employee["cv"]["project"])) echo '<p>Aucun projet enregistré.</p>'; foreach ($employee["cv"]["project"] as $project) { if (empty($project["link"])) { echo '<b>' . $project["title"] . '</b><ul><li>' . $project["description"] . '</li></ul>'; } else { echo '<b><a target="_blank" href="' . $project["link"] . '">' . $project["title"] . '</a></b><ul><li>' . $project["description"] . '</li></ul>'; } } echo '</div></div></div>'; } elseif ($mode == 'articles') { echo '<nav class="crumbs"> <ol> <li class="crumb"><a href="../">Accueil</a></li> <li class="crumb"><a href="./">Équipe</a></li> <li class="crumb"><a href="./' . end($url) . '">' . $employee["name"] . '</a></li> <li class="crumb">Articles</li> </ol> </nav>' . "<h1>Articles publiés par <a href='./" . end($url) . "'>" . $employee["name"] . "</a></h1>"; if (empty($employee["articles"])) echo '<p>Aucun article.</p>'; echo '<ul id="articles">'; foreach ($employee["articles"] as $article) { $date = new DateTime($article['created_at']); echo '<li><a href="../blog/' . $article["slug"] . '">' . $article["title"] . '</a><br> Date : ' . $date->format('d/m/Y') . '<br> Extrait : ' . $article["excerpt"] . '</li>'; } echo '</ul>'; } } ?> </main> <button onclick="topFunction()" id="backToTop" title="Revenir au début de la page">⬆️</button> <footer> <div class="content"> <div class="text"> © <?= date("Y") ?> Elite Solar <a href="legal">Mentions légales</a> <a href="sitemap">Plan du site</a> </div> <div class="social"> <a target="_blank" href="https://linkedin.com"><img src="../assets/img/linkedin.svg" width="25" height="25" alt="LinkedIn"></a> <a target="_blank" href="https://instagram.com/elitesolar77"><img src="../assets/img/instagram.svg" width="25" height="25" alt="Instagram"></a> <a target="_blank" href="https://www.facebook.com/profile.php?id=100089332237449"><img src="../assets/img/facebook.svg" width="25" height="25" alt="Facebook"></a> <a target="_blank" href="https://twitter.com/EliteSolar77"><img src="../assets/img/twitter.svg" width="25" height="25" alt="Twitter"></a> </div> </div> </footer> <script src="../assets/js/script.js"></script> </body> </html>