Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je suis en train de regarder les aides de vues comme headScript() etc. et j'ai une petit question :
Dans mon layout je met le code suivant :
$this -> headScript() -> appendFile('/javascript/prototype.js') -> appendFile('/javascript/scriptaculous.js'); echo $this -> headScript();
Dans une de mes vues je charge un fichier spécifique :
$this->headScript()->offsetSetFile(15, '/javascript/tabs.js');
Quand je regarde le code source le fichier tabs.js est chargé en 1er
La seule solution que j'ai trouvé pour garder prototype.js en 1er est de faire, dans ma vue :
$this->headScript() -> appendFile('/javascript/tabs.js') -> prependFile('/javascript/prototype.js');
Mais ce n'est pas du tout pratique. Si à chaque inclusion d'un JS dans une vue je dois redéfinir les positions des inclusion c'est un peu la misère
Donc il y a surement un truc que j'ai raté mais je ne vois pas trop. J'en tenté pas mal de truc avec les prependFile, offsetSetFile etc. mais seul le fait de redéfinir prependFile('/javascript/prototype.js') dans ma vue fonctionne !
Si quelqu'un a une piste je suis preneur
Cordialement,
Kaimite
Dernière modification par Kaimite (26-01-2009 13:45:42)
Hors ligne
Salut,
regarde cet exemple de la doc, ça semble être exactement ce que tu cherches à faire.
@9
Hors ligne
Je me suis basé sur cet exemple, qui fonctionne très bien si le code est inclu dans un seul et même fichier.
Là mon soucis c'est que ça ne fonctionne pas quand je fait des inclusions dans mon layout ET dans une vue.
Le script de vue est traité en 1er et ses fichiers sont inclus en 1er donc mon fameux prototype.js est toujours inclus ensuite
Kaimite.
Dernière modification par Kaimite (26-01-2009 12:05:27)
Hors ligne
remplace append par prepend pour prototype dans ton layout
Desfois, la solution est toute bête.
Et c'est logique, ta vues et d'abord chargé, donc, c'est d'abord ton tabs qui est appelé, suivis de prototype.
Append, ca rajoute à la fin de la pile, et prepend au début
PS : le pire c'est qu t'avais trouvé la solution toi même !
Dernière modification par nORKy (26-01-2009 13:15:40)
Hors ligne
Salut,
C'est en le formulant dans le message que j'ai compris !!!
J'ai passé 1 heure hier soir à faire plein de test sans vraiment réfléchir :p
Je viens de le re tester avec :
dans mon layout :
$this -> headScript() -> appendFile (JAVASCRIPT_SRC . "/definitions_var.js.php") -> appendFile (JAVASCRIPT_SRC . "/fonctions.inc.js") -> appendFile (JAVASCRIPT_SRC . "/3rd-party/sifr/sifr.js") -> appendFile (JAVASCRIPT_SRC . "/3rd-party/swfobject.js") -> prependFile (JAVASCRIPT_SRC . "/3rd-party/prototype-1.6.0.2-banana.js"); echo $this -> headScript();
Et dans ma vue :
$this -> headScript() -> appendFile (JAVASCRIPT_SRC . "/3rd-party/victorstanciu/carousel.js");
Et j'ai bien, au final, prototype en 1er.
Comme quoi des fois il suffit de le formuler pour mieux comprendre le problème
Merci
Kaimite
Dernière modification par Kaimite (26-01-2009 13:45:27)
Hors ligne
Pages: 1