Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework] zmiana randerowanego pliku
bmL
post 10.05.2011, 23:26:20
Post #1





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Witam, dopiero raczkuję w Zendzie. Mam dość typowy problem na który niestety nie mogę znaleźć rozwiązania, a dla osoby która siedzi w zendzie pewnie nie będzie żadnym problemem podpowiedzieć mi w tej kwestii.

Otóż chciałbym wszystkie akcje w danym kontrolerze opakować w jeden widok, najprościej będzie wytłumaczyć jak wkleję kod który już nastukałem:
  1. public function init() {
  2. $this -> _helper -> viewRenderer -> setNoRender(true);
  3. $this -> _forward($this -> _request -> getActionName());
  4. $this -> _rander();
  5. }
  6.  
  7. private function _rander() {
  8. $this -> render('index');
  9. }
  10.  
  11. public function indexAction() {
  12. $this -> view -> var = 'index';
  13.  
  14. }
  15.  
  16. public function testAction() {
  17. $this -> view -> assign('var', 'test');
  18. }

Chcę wszystkie akcje przepuścić przez index.phtml i do niego ewentualnie doklejać inne instancje widoków. Problem twki w tym że w ten sposób nie mogę przypisać zmiennych do widoku. Wygląda na to że $this -> view i $this -> rander() nie są ze sobą powiązane. W takim razie moje pytanie brzmi jak uzyskać taki (działający) efekt?
W tym rozwiązaniu jak w pliku index.phtml wpiszę <?php echo $this -> var?> to wartość nie zostaje wyświetlona...

Ten post edytował bmL 11.05.2011, 00:12:31


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
Eagle
post 11.05.2011, 14:30:36
Post #2





Grupa: Zarejestrowani
Postów: 170
Pomógł: 14
Dołączył: 16.03.2007

Ostrzeżenie: (0%)
-----


Przenieś zawartość funkcji _rander() do

  1. public function postDispatch()
  2. {
  3. }

Zostanie ona wywołana po skończeniu danej akcji.
Fukncję init() możesz skasować.
Go to the top of the page
+Quote Post
Diwi
post 11.05.2011, 15:24:43
Post #3





Grupa: Zarejestrowani
Postów: 245
Pomógł: 4
Dołączył: 22.01.2005

Ostrzeżenie: (0%)
-----


Cytat
Chcę wszystkie akcje przepuścić przez index.phtml i do niego ewentualnie doklejać inne instancje widoków


A to nie lepiej wykorzystać po prostu helper layout ?
Go to the top of the page
+Quote Post
bmL
post 11.05.2011, 15:29:11
Post #4





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Właśnie nie, bo layout mam już wykorzystany a chodzi o to że chcę mieć dodatkowe submenu tylko dla tego kontrolera.
Cytat(Eagle @ 11.05.2011, 15:30:36 ) *
Przenieś zawartość funkcji _rander() do

  1. public function postDispatch()
  2. {
  3. }

Zostanie ona wywołana po skończeniu danej akcji.
Fukncję init() możesz skasować.

Działa, dzięki wielkie smile.gif


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
melkorm
post 11.05.2011, 16:30:09
Post #5





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


  1. $this->_helper->viewRenderer->setScriptAction('index');


W init.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 17:23