CSS dynamique : problème

Bonjour,

Je suis en train de mettre en place un système de css dynamique. Cela ne fonctionne pas pour l'instant et j'ai donc besoin de vos lumières.

Voila où j'en suis pour l'instant :

- fichier index.php, où je souhaite que les styles soient appliqués :
<head>

<link rel="stylesheet" type="text/css" media="screen" href="\css\css.php">

</head>

<body>

...


==> Ca, ça fonctionne, le fichier test.php est bien appelé.

- fichier params.ini, où sont stockés mes paramètres :
bgcolor=#40A497


- fichier css.php :

<?php 
header("Content-type: text/css"); 
$bg_color = $this->params->get('bgcolor');
?>



#page_bg {
	background: <?=$bg_color?>;
}


==> là ça coince ! Le css est bien appellé, car si je mets un code couleur à la place de <?=$bg_color?>, il s'applique. Mais le code d'appel du paramètre ne fonctionne pas...

Je suis un peu perdu : qu'est ce qui ne va pas dans mon code ?

Merci beaucoup pour votre aide.

Théo

7 réponses

  1. Voila mon code :

    <?php
    header("Content-type: text/css");
    $bg_color = $this->params->get('bgcolor');
    ?>

    #page_bg {
    width: 940px;
    height: 100%;
    padding: 10px;
    margin: 0 auto;
    background: #40A497;
    }
    1. et ta classe elle fait quoi ?
  2. Up !

    Je suis toujours coincé... Help !

    Merci beaucoup à tous.
    1. Si je charge le css.php dans le navigateur, j'obtiens ceci :
      <br />
      <b>Fatal error</b>: Using $this when not in object context in <b>C:\xampp\htdocs\EasyWebSite\templates\wm_01_j15\test.php</b> on line <b>3</b><br />

      Si ça te dis quelques chose...
      1. OK.

        Ca fonctionne, le paramètre est bien appellé.

        Par contre, j'ai l'impression que c'est le css qui refuse de s'apliquer dès que j'ajoute le code : $bg_color = $this->params->get('bgcolor');

        Si mon fichier css.php contient :
        <?php 
        header("Content-type: text/css"); 
        $bg_color = $this->params->get('bgcolor');
        ?>
        
        
        
        #page_bg {
        	width: 940px;
        	height: 100%;
        	padding: 10px;
        	margin: 0 auto;
        	background: #40A497;
        }


        Le background ne s'affiche pas.

        Par contre, si j'insère ce code :

        <?php
        header("Content-type: text/css");

        ?>

        #page_bg {
        width: 940px;
        height: 100%;
        padding: 10px;
        margin: 0 auto;
        background: #40A497;
        }

        Ca marche...
        1. Bonjour, merci pour ta réponse.

          Non, je n'ai pas vérifié : comment faire, t'as une idée ?

          Merci pour ton aide.
          1. echo, print_r etc
        2. Contributeur
          Tu as regardé ce qui sortait du code : $bg_color = $this->params->get('bgcolor'); ?

          Parce que si ça se trouve il ne récupère rien, donc pas de couleur.