Dans ce projet, deux layouts distincts sont utilisés pour structurer l'affichage des différentes interfaces utilisateur : WorkSpace (Espace de travail) et UserSpace (Espace utilisateur). Cette séparation permet une meilleure organisation du code, une gestion plus claire des permissions et une expérience utilisateur adaptée à chaque type d'acteur du système.



Utilisation

Dans les pages, il suffit de définir la variable $layout pour indiquer l'utilisation du Workspace :

<?php
$layout = 'workspace';
?>

Le routeur détecte cette variable et charge automatiquement layouts/workspace.php qui inclura la page demandée dans la section principale du layout.


Structure du Workspace

Le fichier layouts/workspace.php encapsule toutes les pages nécessitant cette interface. Il inclut :

  • Head (includes/head.php)
  • Topbar (includes/topbar.php)
  • Sidebar (includes/sidebar.php)
  • Contenu principal (chargé dynamiquement en fonction de la page demandée)
  • Footer (includes/footer.php)

Chargement Dynamique des Layouts

Le fichier index.php agit comme un routeur et charge le bon layout en fonction de la variable $layout définie dans chaque page.

Exemple de logique de chargement dynamique :

<?php
if (isset($layout) && file_exists(__DIR__ . "/layouts/$layout.php")) {
    require __DIR__ . "/layouts/$layout.php";
} else {
    require $pagePath; // Charge directement la page si aucun layout n'est défini
}
?>