salut à tous,

J'ai suivi et j'utilise les scripts du tuto developper un site de A à Z.
J'ai un problème dont je ne comprends pas. Ma feuille de style CSS n'est fonctionnelle que sur la page default.php.
Je ne comprends pas pourquoi sur les pages et en mode admin (cockpit) ma feuille de style ne marche pas.

Merci pour le tuto. Il faut une bonne base php,POO pour le comprendre.
Ceci dit la structure MVC du tuto est bien.

Merci pour vos aides et explications.

4 réponses


Salut,

Normalement si tu as suivi correctement le tuto, toutes tes pages annexes (non admin) "passent" par le layout defaut via <?php echo $content_for_layout; ?> donc elles devraient toutes bénéficier du style !

Pour le mode admin tu as dû créer un second layout "admin", vérifie que tu as bien inclut ta feuille de style sur ce layout.

Exact.
Le style de définit dans ton layout default.php est accessible pour les pages non admin comme l'a dit Matthias.

Et pour l'admin tu met tes styles dans admin.php pour qu'ils soit accessible dans toutes les pages admin.

Par contre une question que je me pose(je profite de ton post didierkf^^). j'ai un style pour mon backoffice et un autre pour le front. je veux que certains aspets du back soit les même pour le front(par exemple les notifs et les forms). Obligé de faire un copier coller du css concerné?

Salut,

pour @didierkf: Matthias à tout à fait raison :)

pour @warkanix:

Non tu n'est pas obliger de faire un copier coller mais juste créer un fichier pour les deux layout et un pour chaque layout qui sont bien entendu différent tous se qui est ressemblant sont dans le premier fichier puis dans chaque layout tu appel leur css de base :)

se qui te fait au final :

// CSS pour le layout default
    <link rel="stylesheet" href="<?php echo Router::webroot('css/globalDefault/style.css'); ?>"> //-> css général pour les deux layout
    <link rel="stylesheet" href="<?php echo Router::webroot('css/layoutDefault/style.css'); ?>">
        // CSS pour le layout admin
    <link rel="stylesheet" href="<?php echo Router::webroot('css/globalDefault/style.css'); ?>"> //-> css général pour les deux layout
    <link rel="stylesheet" href="<?php echo Router::webroot('css/adminDefault/style.css'); ?>">

Ceci te permettra par la suite de mieux gérer le css en cas de changement pour un layout en particulier ou les deux :)

après si tu à un css en particulier selon le controller ou tu te trouve tu peut également ajouter une condition pour qu'il soit charger lorsque tu te trouve sur se controller

// si un controller est appeler
<?php if( isset($this->request->controller)
        // et que le fichier existe alors on charge le fichier css qui s'appelle comme le controller dans un dossier nommer comme le controller
            && file_exists( WEBROOT.DS.'css'.DS.$this->request->controller.'/'.$this->request->controller.'.css')) : ?>
        <link rel="stylesheet" type="text/css" href="<?php echo Router::webroot('css/'.$this->request->controller.'/'.$this->request->controller.'.css'); ?>"></script>
    <?php endif; ?>

<u>exemple de on architecture de mon dossier css :</u> (j'ai rajouter le tuto du calendrier dans le MVC donc lorsque je vais sur calendrier le controller calendrier est appeler on charge le css correspondant mais que si il est appeler :) )

Dossier Webroot
        |
        -> css        
            |
            ->calendrier
                |
                -> calendrier.css

A+ :)

didierkf
Auteur

Merci pour toutes vos réponses.
Je regarde tout ça et vous dit ce qu'il en ait.

@+