Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-01-2011 18:04:06

younesD
Membre
Date d'inscription: 20-04-2008
Messages: 21

[Résolu][Zend_View][1.10] Placeholder et Layout

Bonjour ,
j'ai un petit soucis de comportent des Placeholder headScript() et headLink()  que je n'arrive pas à le comprendre.

j'essaye d'insérer un code  JavaScript  et une feuille  css  spécialement pour une vue , j'utilise pour ça les Placeholders

Code:

<?php echo $this->headScript()->appendFile('/js/accordion/accordion.js');?>
<?php echo $this->headLink()->appendStylesheet('/css/accordio/accordion.css')?>

toute marche biens , mais quand je demande la page je vois dans la source que le JavaScript et la feuille css sont inérer deux fois enetre le <head></head> et une deuxième fois dans le corps de la page (où le contenu de la vue )

Dernière modification par younesD (01-02-2011 17:12:36)

Hors ligne

 

#2 31-01-2011 13:43:06

Ithier
Membre
Date d'inscription: 05-01-2010
Messages: 85

Re: [Résolu][Zend_View][1.10] Placeholder et Layout

Pour ajouter un script à la liste des scripts tu dois juste faire:

Code:

$this->headScript()->appendFile('/js/accordion/accordion.js');

Et quand tu veux qu'il s'écrive dans ta page tu dois faire

Code:

echo $this->headScript();

Là tu dois faire 2 fois le echo $this->headScript();, une fois dans ton layout (le bon endroit) et une fois dans ta vue, d'où leur double présence dans la page.

Hors ligne

 

#3 31-01-2011 21:22:55

younesD
Membre
Date d'inscription: 20-04-2008
Messages: 21

Re: [Résolu][Zend_View][1.10] Placeholder et Layout

bonjour, et merci Ithier pour ta réponse.

j'ai essayé ça , mais le soucis que j'ai , c'est que j'insère la librairie Jquery dans Layout()

Code:

<?php echo $this->headScript()->appendFile('/js/biblio/jquery/jquery-1.4.4.min.js')?>

et dans la vue où j'ai besoin du fichier accordion.js  je mets

Code:

$this->headScript()->appendFile('/js/accordion/accordion.js');

dans ce cas je trouve accordion.js inséré avant Jquery  .

Hors ligne

 

#4 01-02-2011 09:28:46

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu][Zend_View][1.10] Placeholder et Layout

Bonjour,

Ceci se produit parce que la vue est rendue avant le layout.
Pour être certains que les ressources ajoutées dans le layout apparaissent avant celles des vues, il faut utiliser l'ordre LIFO (Last In First Out) dans le layout, et l'ordre normal (FIFO) dans les vues.

Exemple :

# layout.phtml

Code:

$this->headScript()->prependFile('min/?g=layout')
                   ->prependFile('_js/_langs/' . $this->currentLocale() . '/global.js');

Ici, global.js sera ajouté en haut de la pile (en premier), l'ordre est résolu à l'envers.


# account/new.phtml

Code:

$this->headScript()->appendFile('min/?g=account');

Ce qui me donnera bien au rendu final :

Code:

<script type="text/javascript" src="_js/_langs/fr_FR/global.js"></script>
<script type="text/javascript" src="min/?g=layout"></script>
<script type="text/javascript" src="min/?g=account"></script>

A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#5 01-02-2011 17:11:37

younesD
Membre
Date d'inscription: 20-04-2008
Messages: 21

Re: [Résolu][Zend_View][1.10] Placeholder et Layout

Bonjour ,
merci benjamin bien expliqué  , c'est exactement ce que je cherche à comprendre !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages