Salut !

J'ai utiliser la fonction Ob_start pour pouvoir décomposer mon site, cependant je voudrais créer une administration avec un design bien différent, je ne sais pas comment faire pour créer une seconde template juste pour mon dossier /admin/.

Savez vous comment faire ?
Merci.

3 réponses


Bonjour, :)

Dans tes templates, tu en créer un nouveau, que je vais appeler pour l'exemple : templateAdmin. Ensuite, sur tes pages qui sont passer dans l'url (index.php?p=index), tu ajoutes une ligne de ce genre :

<?php $css='<link rel="stylesheet" href="stylePrincipal.css" />' ?>

Et sur tes pages admin tu ajoutes ceci :

<?php $css='<link rel="stylesheet" href="styleAdmin.css" />'; ?>

Ensuite dans tes pages templates (ceux ou tu as tout ton code html), tu fais ceci dans ton head :

<head><?php echo $css; ?></head>

Voici un exemple concret d'utilisation !!!

Page template :

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <?php echo $css; ?>
        <title>Ici ton titre</title>
    </head>

    <body>
        //Ici ton contenu inclu
    </body>
</html>

page index.php :

<?php $css = '<link rel="stylesheet" href="stylePrincipal.css" />' ?>
//Le contenu de ta page ci-dessous

page d'administration :

<?php $css = '<link rel="stylesheet" href="styleAdmin.css" />'; ?>
//Ici le contenu de ta page d'administration...

As-tu compris ce que je voulais dire ?

Cordialement.

Terry
Auteur

Merci beaucoup mais je voudrais créer une deuxieme template, c'est pas possible ?

en fait il y a un truc que j'ai pas pigé je crois...

Edit de mon post : Comme le précise ton titre, tu souhaites définir un design différent si tu te trouve sur l'administration. Dans ce cas, mon système est correct... Je présume que tu utilises la fonction [url=http://php.net/manual/fr/function.ob-start.php]ob\_start[/url] comme montré dans le tutoriel de ce site ? Je ne vois pas comment tu pourrais l'utilisé autrement... Dans ce cas, ce que j'ai dit ci-dessus est bon. Voici un exemple pour te montrer comment faire (je le fais rapidement) **index.php** (c'est le fichier girouette comme préciser dans le tutoriel, ou le "*controller*", si on parle de modèle MVC) : [code]<?php //On verifie si le fichier est passer dans l'url
if(!isset($_GET['page'])){ $_GET['page'] = 'index'; }

//On vérifie si le fichier est sur le serveur
if(!file_exists('contents/'.$_GET['page'].'.php')){ $_GET['page'] = 'errors/404'; }

//on stop la tamporisation de sorti
ob_start();

//On inclu le fichier passer dans l'url
require_once'contents/'.$_GET['page'].'.php';

//On stock le contenu stocker dans le tampan dans une variable
$content = ob_get_contents();

//On "reprend" la sorti
ob_end_clean();

//On inclue le template de la page
require_once'template.php';

[/code]

Ensuite la page template (celle qui contient le code HTML de base), template.php :

[code]
<!DOCTYPE html>

<meta charset="utf-8"><title>Portfolion - <?php echo $title; ?>
</title><!-- CI DESSOUS, J'AFFICHE LE CONTENU DE LA VARIABLE CSS A NOTER QUELLE N'EST PAS DEFINI SUR CETTE PAGE --><link rel="stylesheet" href="<?php%20echo%20%24css;%20?>"><?php echo $content; ?> [/code] Maintenant une page que tout le monde peux voir, accueil.php [code]<!-- JE DEFINI LA VARIABLE CSS AVEC LE CONTENU : MEMBRE.CSS --><?php $css = 'membre.css'; ?><section>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque id turpis metus, at commodo elit. Sed accumsan, est a posuere semper, dolor odio malesuada arcu, sit amet volutpat neque magna et metus. Ut et sagittis felis. Etiam auctor, elit et porttitor semper, ante nunc auctor nulla, non tristique tortor ante id tellus. Integer odio nisl, mattis at sodales eget, fermentum
</section>[/code] maintenant une page de ton administration, admin.php : [code]<!-- JE DEFINI LA VARIABLE CSS AVEC LE CONTENU : admin.CSS --><?php $css = 'admin.css'; ?><section>
Sed accumsan, est a posuere semper, dolor odio malesuada arcu, sit amet volutpat neque magna et metus. Ut et sagittis felis. Etiam auctor, elit et porttitor semper, ante nunc auctor nulla, non tristique tortor ante id tellus. Integer odio nisl, mattis at sodales eget, fermentum
</section>[/code] Voilà, maintenant tu as tout ce qu'il faut pour réussir à faire ce que tu souhaites faire. Voici quand même des explications de ce qui ce passe dans l'ordre : - 1 : Tu arrive demande une page à ton site, par exemple : index.php?page=accueil - 1 : Le fichier index.php va s'occuper de récupérer le contenu de la page en question (accueil dans notre cas), et l'inclure dans la page template.php à l'endroit demander. - 2 : Au moment ou le fichier inclut tout ce qu'il faut, il trouve une variable $css, qui est appeler dans le head du fichier template.php. Il le charge en priorité. A ce moment dans ton fichier template.php la ligne qui inclut le css ressemble à ceci : <link rel="stylesheet" href="membre.css">, donc c'est le design des membres qui va être appeler. ** - 2 : Tu demandes la page d'administration en l'occurence : index.php?page=admin - 1 : Identique que l'étape 1.1 - 2 : Identique au point 1.2 sauf que cette fois la ligne qui charge le css est celle-ci : <link rel="stylesheet" href="admin.css">, et par conséquent, c'est le design de l'administration qui est chargé !!!! ** ** Voilà, si tu ne comprend pas cela, je ne pourrais rien faire de plus ! Cordialement. PS : Ici j'ai fais une 'tite faute. Si par malheur,dans une de tes pages tu oublies de définir le css, alors tu n'auras pas de design pour cette page.