Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 03-04-2008 16:08:45

sareum
Nouveau membre
Date d'inscription: 20-07-2007
Messages: 7
Site web

[Résolu] [Zend_View][1.5.1] Problème avec Zend_View avec la 1.5.1

J'ai un souci avec une ébauche de site que j'ai réalisée avec la version précédente du Framework. J'ai un contrôleur principal et un contrôleur "admin".
Dans une action de ce dernier, j'ouvre un flux xml à l'aide de SimpleXML et je l'enregistre dans une variable membre de mon composant View et je lance le rendu.

Code:

ACTION :

  function chargeSortieAction()
  {

    // Début des traitements
    $this->view->title = "Le titre à afficher";

    // Chargement du flux
    $content =  "<?xml version='1.0' encoding='ISO-8859-1' ?>
                      <item>
                        <title>mon titre</title>
                        <description>description</description>
                        <date>2008-03-26</date>
                      </item>";

    // Stockage dans la variable View
    $this->view->xml = new SimpleXMLElement($content);

    // Affichage de la vue
    $this->render();
  }

Dans le script d'affichage, ma variable View ne contient plus les membres que j'ai ajoutés dans le contrôleur: view->xml et view->title.

Code:

AFFICHAGE :

<html>
  <head>
    <title><?php echo $this->escape($this->title); ?></title>
  </head>

  <body>
    <?php Zend_Debug::dump($this); ?>
    <?php foreach ($this->xml->item as $item) {  echo "Affichage des éléments";  } ?>
  </body>
</html>

PHP me renvoie l'erreur suivante au moment d'accéder à $this->xml
Cela fonctionnait pourtant avec la version précédente du ZF.

Pour migrer le site, j'ai renommer mes script d'affichage pour respecter les nouvelles conventions de nommage des actions.

Est-ce qu'il y a qqchose qui a changé avec la dernière version pour le passage des variables entre le controleur et la vue?

Est-ce que la méthode utilisée et qui fonctionnait auparavant n'était pas correcte ?
Merci d'avance pour votre aide

Jerome

Dernière modification par sareum (04-04-2008 10:07:58)


_______________________________________

Jer

Hors ligne

 

#2 03-04-2008 17:26:23

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] [Zend_View][1.5.1] Problème avec Zend_View avec la 1.5.1

Sur quel version se script fonctionnait?
Y'a t-il du code avant dans un init() par exemple qui initialise la vue?

Code:

// Affichage de la vue
    $this->render();

Je ne sais pas si tu as vu mais depuis la 0.9 je crois, un vue est instancié et rendu automatiquement. Donc pas besoin de ce petit bout de code.

Hors ligne

 

#3 03-04-2008 18:15:13

sareum
Nouveau membre
Date d'inscription: 20-07-2007
Messages: 7
Site web

Re: [Résolu] [Zend_View][1.5.1] Problème avec Zend_View avec la 1.5.1

Cela fonctionnait sur la 0.9.3 au tout début et puis sur une version 1.0.3 ou 1.0.4, je ne me souviens plus
Voici l'init du contrôleur:

Code:

  function init()
  {
    // Initialisation de la fonction
    global $g_logger;

    // Début des traitements
    global $G_SCRIPT_PATH;
    $this->view = new Zend_View();
    $this->view->setScriptPath($G_SCRIPT_PATH);
    $this->view->baseUrl = $this->_request->getBaseUrl();

    // Chargement des tables à utiliser
    etc...
    
  }

Typiquement ce code d'instanciation de la vue dans Init() n'est plus nécessaire depuis la 0.9 ?


_______________________________________

Jer

Hors ligne

 

#4 03-04-2008 20:00:34

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] [Zend_View][1.5.1] Problème avec Zend_View avec la 1.5.1

Exacte. Cherche du côté du ViewRenderer.
Du coup si tu changes le scriptPath tu peux faire ça dans le bootstrap. Y'a un bout de code récent qui traîne sur le forum.
Par contre, tu as toujorus accès à $this->view dans le controller.
Donc la ton $this->xml devrait fonctionner wink

Hors ligne

 

#5 04-04-2008 10:07:11

sareum
Nouveau membre
Date d'inscription: 20-07-2007
Messages: 7
Site web

Re: [Résolu] [Zend_View][1.5.1] Problème avec Zend_View avec la 1.5.1

Trouvé!
J'ai juste retiré l'instanciation de ma vue dans Init() du contrôleur. Cela devait "occulter" la vue par défaut ou alors la vue par défaut devait être recrée par le controleur au moment de charger le script d'affichage.

Maintenant le contrôleur contient juste :

Code:

  
function init()
  {
    // Initialisation de la fonction
    global $g_logger;

    // Chargement des tables à utiliser
    etc...
    
  }

function chargeSortieAction()
  {

    // Début des traitements
    $this->view->title = "Le titre à afficher";

    // Chargement du flux
    $content =  "<?xml version='1.0' encoding='ISO-8859-1' ?>
                      <item>
                        <title>mon titre</title>
                        <description>description</description>
                        <date>2008-03-26</date>
                      </item>";

    // Stockage dans la variable View
    $this->view->xml = new SimpleXMLElement($content);

  }

Et dans le script d'affichage je retrouve bien l'accès à mes variables
Merci beaucoup!


_______________________________________

Jer

Hors ligne

 

#6 04-04-2008 10:13:27

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [Résolu] [Zend_View][1.5.1] Problème avec Zend_View avec la 1.5.1

Au plaisir smile

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