2023-01-17 23:44:08 +01:00
< ? 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 >
2023-01-17 23:57:17 +01:00
< a href = " ../ " >< img id = " logo " src = " ../assets/img/logo_noir.png " height = " 60 " alt = " Elite Solar " ></ a >
2023-01-17 23:44:08 +01:00
< 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 >
2023-01-17 23:57:17 +01:00
< li class = " crumb " >< a href = " ../ " > Accueil </ a ></ li >
2023-01-17 23:44:08 +01:00
< 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 >
2023-01-17 23:57:17 +01:00
< li class = " crumb " >< a href = " ../ " > Accueil </ a ></ li >
2023-01-17 23:44:08 +01:00
< 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 >
2023-01-17 23:57:17 +01:00
< li class = " crumb " >< a href = " ../ " > Accueil </ a ></ li >
2023-01-17 23:44:08 +01:00
< 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 >
2023-01-17 23:57:17 +01:00
< li class = " crumb " >< a href = " ../ " > Accueil </ a ></ li >
< li class = " crumb " >< a href = " ./ " > Équipe </ a ></ li >
2023-01-17 23:44:08 +01:00
< 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 >
2023-01-17 23:57:17 +01:00
< 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 >
2023-01-17 23:44:08 +01:00
< 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 >
2023-01-17 23:57:17 +01:00
< 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 >
2023-01-17 23:44:08 +01:00
< 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 >