Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
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
[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 :
[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
[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