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 :

Probleme lors de la création d'une aide de vue [ZF 1.7]


Sujet :

Zend Framework PHP

  1. #1
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut Probleme lors de la création d'une aide de vue
    Bonjour,

    Je rencontre un problème (voir deux) lorsque je créé une aide de vue.

    1/ Elle a pour but de mettre en place le menu sur mon site (voici la partie du code qui me pose pb)

    Avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?php
    class Zend_View_Helper_SetMenu
    {
        function setMenu()
        {
           $db = Zend_Registry::get('db');
    	   $page = new Pages();
    	   $pages = $page->getPagesAll();
    	   $e = "ok";
    	   $myMenu = "<ul id=\"mainNav\">";
     
    	   foreach($pages as $cle){
    			$myMenu .= "<li><a href='test'>ok</a></li>";
    	   }
    	   $myMenu .= "</ul>";
     
    	   return $myMenu;
        }
    }
    Le lien qui est retourné possède un espace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost/webspace/public /test
    il génère un espace ... !??

    2/ Ici, c'est exactement le meme code que si dessus, mais, je souhaiterais mettre du php dans mon href, pour retourner un lien qui comporte une action et un controller, mais le probleme c'est qu'il m'affiche le code php en entier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    foreach($pages as $cle){
    			$myMenu .= "<li><a href='echo $e'>ok</a></li>";
    	   }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost/webspace/public%20/echo%20ok
    C'est surement bateau, mais je tourne en rond, merci d'avance pour une quelconque aide!

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Je ne comprend pas bien ce que tu essaie de faire.
    Où sont les liens de tes pages ?

    Tu ne peux pas mettre du PHP dans une chaîne de carcatères... Mais tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $myMenu .= "<li><a href=\"$e\">ok</a></li>";
    // ou encore, ce qui revient au même :
    $myMenu .= '<li><a href="'.$e.'">ok</a></li>';
    Regardes aussi du côté de Zend_Navigation, je ne l'ai encore jamais utilisé, mais il semble que ce soit un composant dédié à la gestion des menus...

  3. #3
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut
    Bonjour Eusebe, merci de ta réponse.

    En faite, je n'ai pas mis le code entier, mais une partie, 'le squelette', celui qui me pose problème. Mes liens seront générés dans le foreach.

    Lorsque j'exécute cette vue, les liens générés possède un espace dans mon url, apres "public", et je ne comprend pas pourquoi.

    Voici le code complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?php
    class Zend_View_Helper_SetMenu
    {
        function setMenu()
        {
           $db = Zend_Registry::get('db');
    	   $page = new Pages();
    	   $pages = $page->getPagesAll();
     
    	   $myMenu = "<ul id=\"mainNav\">";
    	   foreach($pages as $cle){
    			$myMenu .= "<li><a href="'. $this->url(array(\"controller\"=>\"$cle->Controller\",\"action\"=>\"index\"),\"default\", true) .'">ok</a></li>";
    	   }
    	   $myMenu .= "</ul>";
     
    	   return $myMenu;
        }
    }
    Mais ca ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\webspace\application\views\helpers\SetMenu.php on line 13

  4. #4
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Tu ne peux pas utiliser l'aide de vue url comme ça dans ton aide de vue... Il te faut l'instancier avant. Et ta construction de caîne d ecaractère n'est pas bonne (mélange de " et de ' comme délimiteurs de chaîne, d'où lerreur)

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $url = new Zend_View_Helper_Url()
    foreach($pages as $cle){
        $myMenu .= '<li><a href="' . $url(array('controller'=>$cle->Controller, 'action'=>'index'), 'default', true) . '">ok</a></li>';
    }

  5. #5
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut
    Exact! tout marche correctement merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	   $url = new Zend_View_Helper_Url();
     
    	   foreach($pages as $cle){
    			$myMenu .= '<li><a href="' . $url->url(array('controller'=>$cle->Controller, 'action'=>'index'), 'default', true) . '">'. $cle->Titre .'</a></li>';
    	   }
    Penses tu que l'aide de vue est le bonne endroit pour construire le menu principal de mon site ?

  6. #6
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par miya Voir le message
    Penses tu que l'aide de vue est le bonne endroit pour construire le menu principal de mon site ?
    Pour construire le code HTML correspondant, oui.

    Tu as un modèle (Pages) qui gère les données, et une aide de vue qui gère l'affichage.

    La seule chose qui me gêne, c'est que tu instancies directement ton modèle dans ta vue (=> lien fort).

    Si tu prend l'exemple de Zend_Navigation, il y a également un composant qui gère les données (Zend_Navigation lui-même) et une aide de vue pour l'affichage (Zend_View_Helper_Navigation_Menu par exemple, mais il y en a d'autres). Mais l'aide de vue n'instancie pas directement un objet Zend_Navigation, mais les récupères soit en paramètre soit dans le registre (qui doit alors être initialisé dans le bootstrap, dans un plugin, ou autre...).

  7. #7
    Membre actif Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Points : 240
    Points
    240
    Par défaut
    Ok merci encore Eusebe, j'en suis pas encore a ce niveau, donc je verrais ces aspects la plus tard

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/07/2007, 09h54
  2. [DB2]Eurreur lors de la création d'une procédure
    Par uaspecitmoon dans le forum DB2
    Réponses: 1
    Dernier message: 25/05/2005, 19h23
  3. [Language]problème lors de l'appel d'une méthode
    Par Samanta dans le forum Langage
    Réponses: 6
    Dernier message: 18/05/2005, 13h03
  4. [ADO] Probleme lors de l'execution d'une requete...
    Par NoisetteProd dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/06/2004, 12h43
  5. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47

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