Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-04-2011 12:34:53

fhebert
Membre
Date d'inscription: 30-11-2010
Messages: 20

View helpers imbriqués

Bonjour,

je fais deux appels imbriqués au view helper LoopPartial. Je veux paramêtrer le nom de l'attribut sur lequel récupérer
l'objet (LoopPartial::objectKey) dans le template (pour les deux boucles imbriquées).

Voici le code des deux boucles :

book/list.phtml

Code:

[lang=php]
<?php $this->render('base.phtml') ?>
<?php /* @var $this->paginator Zend_Paginator */ ?>
<?php if ($this->paginator->count() !== 0): ?>
    <?php $this->partialLoop()->setObjectKey('book') ?>
    <?php echo $this->partialLoop('book/list-item-partial.phtml', $this->paginator->getCurrentItems()) ?>
    <?php echo $this->paginationControl($this->paginator, 'Sliding', 'paginator-navigation-partial.phtml') ?>
<?php else: ?>
    <p>Il n'y a pas d'ouvrages correspondants à la recherche !</p>
<?php endif; ?>

book/list-item-partial.phtml :

Code:

[lang=php]
<li class="liste-ouvrage-item">
    <img src="<?php echo $this->baseUrl($this->getCoverFileName($this->book, 'list', true)) ?>" />
    <a href="<?php echo $this->url(
                                array(
                                        'bookId' => $this->book->id,
                                        'language' => 'fr' 
                                    )
                                , 'book_detail'
                                ) ?>
        " title="Consultez la notice de « <?php echo $this->escape($this->book->title) ?> »">
        <?php echo $this->escape($this->book->title) ?></a>
    </li>
    <span class="liste-ouvrage-item-titre"><?php echo $this->escape($this->book->title) ?></span>
    <span class="liste-ouvrage-item-soustitre"><?php echo $this->escape($this->book->subtitle) ?></span>
    <ul>
        <?php 
            $this->partialLoop()->setObjectKey('author');
            echo $this->partialLoop('author/list-item-partial.phtml', $this->book->Authors)
        ?>
    </ul>
</li>

et le code author/list-item-partial.phtml

Code:

[lang=php]
<li class="liste-auteur-item">
   <a href="<?php $this->url(
                                array(
                                        'authorId' => $this->author->id,
                                        'language' => 'fr' 
                                    )
                                , 'author_detail'
                                ) ?>
        " title="Consultez la notice de « <?php $this->escape($this->author) ?> »">
        <?php $this->escape($this->author) ?></a>
</li>

Le premier passage de chacune des deux boucles se passe sans soucie.
Le problème est le suivant : lors du deuxième passage de la boucle 'book' le nom de l'attribut reste 'author' (celui définit au premier passage de la deuxième boucle). Ceci dû au fait que le broker instancie une seule instance du view helper pour toute la durée de vie
du processus.

Que faire ?

Frédéric

Dernière modification par fhebert (07-04-2011 12:43:00)

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