Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF]Przekazanie zmiennej
Forum PHP.pl > Forum > PHP > Frameworki
minolone
Witam
Mój problem polega na przekazaniu zmiennej w Zend_Paginator.

kontroler
  1. public function viewWordAction()
  2. {
  3. $word = new Model_Word();
  4. $adapter = $word->viewWords();
  5. $paginator = new Zend_Paginator($adapter);
  6. $paginator->setItemCountPerPage(10);
  7. $page = $this->_request->getParam('strona', 1);
  8. $paginator->setCurrentPageNumber($page);
  9. $this->view->paginator = $paginator;
  10. }

plik paginator.phtml
  1. <?php if ($this->pageCount) {
  2. $params = Zend_Controller_Front::getInstance()->getRequest()->getParams();
  3. unset ($params['module']);
  4. unset ($params['controller']);
  5. unset ($params['action']);
  6. ?>
  7. <div class="paginationControl">
  8. <!-- link do poprzedniej strony -->
  9. <?php if (isset ($this->previous)) { ?>
  10. <a href="<?php echo $this->url(array_merge($params, array('strona' => $this->previous))); ?>">&lt; poprzednia</a> |
  11. <?php } else { ?>
  12. <span class="disabled">&lt; poprzednia</span> |
  13. <?php } ?>
  14. <!-- numerowanie stron -->
  15. <?php foreach ($this->pagesInRange as $page) { ?>
  16. <?php if ($page != $this->current) { ?>
  17. <a href="<?php echo $this->url(array_merge($params, array('strona' => $page))); ?>"><?php echo $page; ?></a> |
  18. <?php } else { ?>
  19. <?php echo $page; ?> |
  20. <?php }} ?>
  21. <!-- następna strona -->
  22. <?php if (isset ($this->next)) { ?>
  23. <a href="<?php echo $this->url(array_merge($params, array('strona' => $this->next))); ?>">następna &gt;</a>
  24. <?php } else { ?>
  25. <span class="disabled">następna &gt;</span>
  26. <?php } ?>
  27. </div>
  28. <?php } ?>

plik widoku
  1. <p><?php echo $this->paginationControl($this->paginator, 'Sliding', 'paginator/paginator.phtml'); ?></p>
  2. <table class="standard">
  3. <tr>
  4. <th>Id</th>
  5. <th>Słowo</th>
  6. </tr>
  7. <?php foreach ($this->paginator as $user): ?>
  8. <tr class="<?php echo $this->cycle(array("light", "dark"))->next() ?>">
  9. <td><?php echo $user->id; ?></td>
  10. <td><?php echo $user->word; ?></td>
  11. </tr>
  12. <?php endforeach; ?>
  13. </table>

w pliku paginator.phtml gdy uzyje "echo $this->firstItemNumber" i "echo $this->lastItemNumber" to ładnie wyświetla się pierwszy oraz ostatni numer, problem polega na tym że musze je przekazać do widoku ponieważ tam chciałbym zrobić dodatkowe pętle, a dokładniej to chciałbym zrobic 4 kolumny wyświetlające po 'x' wyników, mając w widoku przesłane te zmienne nie będzie żadnego problemu na użycie pętli. Czyli coś takiego mniej więcej:
paginator.phtml
  1. $firstItem = $this->firstItemNumber;
  2. $lastItem - $this->lastItemNumber;

i odebranie w widoku
  1. echo $this->firstItem;
  2. echo $this->lastItem;

Myśle że dość dobrze opisałem swój problem, z góry dzieki za pomoc, Pozdrawiam
zend
Nadpisz helper partiala (Zend_View_Helper_Partial) a dokładnie metodę cloneView(), usuń z niej wywołanie clearVars() na instancji widoku
Daimos
Cytat(zend @ 6.10.2010, 19:11:30 ) *
Nadpisz helper partiala (Zend_View_Helper_Partial) a dokładnie metodę cloneView(), usuń z niej wywołanie clearVars() na instancji widoku

Po co?
Jak dobrze zrozumialem.....
$this->paginator - to obiekt paginatora, wszystkie dane mozesz tu pobrac, za pomoca odpowiednich metod, jak w kontrolerze
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.