IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Zend View Helper et initialisation


Sujet :

Zend Framework PHP

  1. #1
    darthmower
    Invité(e)
    Par défaut Zend View Helper et initialisation
    Bonjour,

    Je crée une aide de vue pour m'afficher un menu, cependant j'ai besoin pour que l'affichage soit comme je veux ajouter des feuilles de styles css et des scripts js (yui).

    J'ai lu sur un blog que de surcharger la méthode setView permettait d'initialiser ce genre de chose mais cela ne fonctionne pas.

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
     
    class Vermon_View_Helper_YuiMenu extends Zend_View_Helper_Abstract
    {
        public function setView(Zend_View_Interface $view)
        {
          parent::setView($view);
          $view->headLink()->appendStylesheet('/js/yui/build/reset/reset-vermon.css');
     
          $view->headScript()->appendFile('/js/yui/build/yahoo-dom-event/yahoo-dom-event.js');
     
          return $this;
        }
    J'aimerais ne charger mes css et js que lorsque j'en ai besoin sans avoir à l'ajouter au bootstrap.

    Quelqu'un aurait déjà eu ce soucis et trouvé une solution ou aurait une idée?

    Merci d'avance,

    Gripsou

  2. #2
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Bonjour,

    Essaie ceci dans ton aide de vue sans faire setView :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $this->view->headLink()->appendStylesheet('/js/yui/build/reset/reset-vermon.css');
          
    $this->view->headScript()->appendFile('/js/yui/build/yahoo-dom-event/yahoo-dom-event.js');

  3. #3
    darthmower
    Invité(e)
    Par défaut
    Merci de ta réponse.

    J'avais essayé de faire ça au tout début lorsque je n'avais pas cherché, mais cela ne marchait pas non plus.

    J'ai tout de même re-testé au cas où mon cerveau me jouerait des tours mais cela ne marche pas.

    Le fait de le mettre dans le setView apparemment était pour l'initialiser à la première utilisation du helper.

    Ce que je me demande c'est si le fait d'appeler le helper dans le body du layout.phtml fait qu'il a déjà appelé les méthodes de créations des scripts et css et donc ne peut en rajouter.

    Grispou

  4. #4
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    J'imagine que oui vu que le layout récupère la vue pour la renvoyer avec le template de base...

    Sinon tu peux aussi transformer ton aide de vue en action que tu appelle dans ton template.

  5. #5
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,

    Le problème c'est que la classe d'aide est créée lors de sa première utilisation, c'est à dire dans le layout.

    Pour contourner le problème, tu peux créer une fonction initHeadLink et initHeadScript que tu appelle avant headLink et headScript dans le layout.

Discussions similaires

  1. problème Zend View Helper Url zf:1.11
    Par yoann92 dans le forum Zend_Form
    Réponses: 5
    Dernier message: 27/07/2012, 14h16
  2. [ZF 1.10] Appel du view helper "action" dans une module ne marche pas
    Par ilalaina dans le forum MVC
    Réponses: 7
    Dernier message: 28/10/2010, 10h11
  3. View Helpers + ACL en ZF1.8 (livre ZFiA)
    Par __fabrice dans le forum MVC
    Réponses: 2
    Dernier message: 26/07/2009, 23h33
  4. Réponses: 1
    Dernier message: 04/06/2009, 19h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo