Bonjour,

Dans mon projet j'essaie de faire en sorte qu'une fenêtre (module de création d'utilisateur) s'ouvre au-dessus du backoffice avec effet de blur sur le background.
J'y arrive et c'est plutôt facile, sauf qu'entre en jeu le routage et AltoRouter.
En gros sur ma page du Backoffice j'ai un lien qui mène vers le module de création, mais je n'arrive pas à le faire apparaître "au-dessus" des éléments du backoffice.
J'ai essayé avec un buffer, mais sans succès, j'ai essayé une page tampon, mais sans succès. Je sais qu'on peut le faire en JS, mais j'apprends le PHP en ce moment et non le JS et surtout ça me permet d'apprendre et de comprendre l'ob_start et les route.
Je vous remercie par avance de votre aide.

Le vue

<?php 
$uri = $_SERVER['REQUEST_URI'];
?>

<h1>Backoffice</h1>

<div class="bck-container">
    <div class="bck-menu">
        <div class="home bck-menu-title">
            <a href="<?= $router->generate('home'); ?>">Accueil</a>
        </div>
        <div class="creation bck-menu-title">
                <a href="backoffice/creation">Créer un utilisateur</a>
        </div>
        <div class="deconnexion bck-menu-title">
            <a href="<?= $router->generate('deconnexion'); ?>">Se deconnecter</a>
        </div>
</div>

Le controleur

<?php

require_once '../utils/backoffice/backoffice.php';

dump($_SESSION);
dump($_GET);
dump($_SERVER);
dump($uri);

Le router

<?php
if(session_status()===PHP_SESSION_NONE):
    session_start();
endif;

require '../vendor/autoload.php';

use Symfony\VarDumper\VarDumper;

$router = new AltoRouter();
$router->map('GET', '/', 'home', 'home');
$router->map('GET', '/creation', 'createuser', 'creation');
$router->map('POST', '/creation', 'createuser', 'postcreation');
$router->map('GET', '/connexion', 'connectuser', 'connexion');
$router->map('POST', '/connexion', 'connectuser', 'postconnection');
$router->map('GET', '/backoffice', 'backoffice', 'backoffice');
$router->map('GET', '/deconnecter', 'disconnectuser', 'deconnexion');
$router->map('GET', '/backoffice/[*:slug]', 'bakcoffice/createuser', 'bckcreation');
$router->map('GET', '/temp', 'temp', 'temp');

$match= $router->match();

if($match !== null){
    if (is_callable($match['target'])){
        ob_start();
        call_user_func($match['target'], $match['params']);
        $pageContent = ob_get_clean();
    }else{
        $params = $match['params'];
        ob_start();
        require "../templates/{$match['target']}.php";
        $pageContent = ob_get_clean();
    };
    require '../utils/layout.php';
}else{
    ob_start();
    require '../templates/home.php';
    $pageContent = ob_get_clean();
    require '../utils/layout.php';
};

Le Layout

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?= $title ?? 'Organigramme'?></title>
    <link rel="stylesheet" href="css/main.css">
    <link rel="stylesheet" href="css/form.css">
</head>
<body>

<?= $pageContent ?>

</body>
</html>

1 réponse


kurdtkobane
Auteur
Réponse acceptée

Merci pour ton message, mais ça n'avait rien à voir avec le CSS. Je mettais la logique au mauvais endroit.
Du coup maintenant ça marche.