Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous !
Je débute sous ZF, et je me heurte à un problème :
Pour une action, je voudrais inclure une feuille de style spécifique (en plus de celles inclues dans le layout).
Voici ce que j'ai en tête de mes fichiers layout.phtml...
<head> <?php echo $this->headTitle($this->title) ?> <?php echo $this->headLink()->headLink(array('rel' => 'shortcut icon', 'href' => $this->baseUrl().'/images/favicon.ico'), 'PREPEND') ->prependStylesheet($this->baseUrl().'/css/base.css') ->appendStylesheet($this->baseUrl().'/css/header.css') ->appendStylesheet($this->baseUrl().'/css/footer.css') ?> <?php echo $this->headScript() ?> <?php echo $this->headMeta() ?> </head>
...et dans le code de mon action
public function menuAction() { // Append menu stylesheet $this->view->headLink()->appendStylesheet($this->view->baseUrl().'/css/index_menu.css'); // Set title $this->view->title = "Menu"; }
Mais ce qu'il se passe au final, c'est que j'obtiens ceci :
<link href="/KIWi/public/css/base.css" media="screen" rel="stylesheet" type="text/css" /> <link href="/KIWi/public/images/favicon.ico" rel="shortcut icon" /> <link href="/KIWi/public/css/index_menu.css" media="screen" rel="stylesheet" type="text/css" /> <link href="/KIWi/public/css/header.css" media="screen" rel="stylesheet" type="text/css" /> <link href="/KIWi/public/css/footer.css" media="screen" rel="stylesheet" type="text/css" />
Y a-t-il moyen de contrôler l'ordre dans lequel vont apparaitre ces lignes ? D'une part il est étrange que la favicon soit placée en deuxième alors que je l'ai déclarée en premier (qui plus est avec l'option PREPEND). D'autre part, ma feuille index_menu.css n'étant pas enn dernier, son contenu spécifique est parasité par le contenu de header.css !
Merci d'avance.
Hors ligne
normal qu'il apparaisse en 2eme :
1) tu "append" ton favicon
2) tu "prepend" base.css (prepend, rajoute en 1er) => favicon passe 2eme
A toi d'utiliser append et prepend en fonction de ce que tu veux
Hors ligne
http://framework.zend.com/manual/fr/zen … lpers.html
Lire : Exemple 61.15. Utilisation basique de l'aide HeadScript
Je pense que tu trouvera ton bonheur
Hors ligne
nORKy a écrit:
normal qu'il apparaisse en 2eme :
1) tu "append" ton favicon
2) tu "prepend" base.css (prepend, rajoute en 1er) => favicon passe 2eme
A toi d'utiliser append et prepend en fonction de ce que tu veux
Ah effectivement, je n'avais pas fait gaffe à ça
Par contre ça ne résout pas mon principal problème : comment faire pour que index_menu.css soit en dernier ?
Merci à vous deux.
EDIT : je n'avais pas lu l'exemple 61.15 en entier. J'ai testé ça, mais ça n'a pas résolu le problème :
public function menuAction() { // Append menu stylesheet (offset 99 to be sure it is placed in last position) $this->view->headLink()->offsetSetStylesheet(99, $this->view->baseUrl().'/css/index_menu.css'); // Set title $this->view->title = "Menu"; }
Dernière modification par ganlhi (06-01-2010 10:07:46)
Hors ligne