Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Template'y z uzyciem zend_layout i zend_view, Poczatkujacy
matchor
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.05.2005

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


Witam. Raczkuje z ZF i bardzo prosze was o pomoc bo juz glupieje. Uzywam najnowszej wersji ZF.

Chce zrobic sobie szablon 3 kolumnowy + header + stopka. Uzylem do tego zend_layout i stworzylem sobie szkielet strony. Teraz w zaleznosci od akcji chce wyswietlac w poszczegolnych elementach layoutu inna zawartosc

i tak np na stronie index w indexControlers chce sobie ustawic by w 'module srodkowym' layoutu miec tresc powitania/'prawej kolumnie' guzik do zalogowania / w 'lewej kolumnie' nie wiem cos innego

na stronie login.html ( loginControlers) chce miec juz cos innego czyli zamiast w lewej kolumnie logowania chce miec np liste ostatnio zalogowanych uzytkownikow
w srodkowej czesci natomiast formularz logowania
w prawej jeszcze cos innego

czyli w zaleznosci od strony do poszczegolnych elementow layoutu chce wrzucac calkowicie inna nie powiazana ze soba tresc cos a'la if (index) include_template_a / else include_template_b

w jaki sposob to oprogramowac ? ja juz sie poddaje i nie za bardzo wiem.

probowalem tak:

w layoucie w odpowiednim katalogu application/views/scripts/index/index.phtml oraz w application/views/scripts/index/login.phtml mam taki sam kod layoutu (tu juz mi cos nie pasuje bo n roznych stron w serwisie i mam tworzyc n takich samych layoutow??) w odpowiednich miejscach htmla printuje

<?php echo $this->layout()->lewaK; ?>
<?php echo $this->layout()->srodekK; ?>
<?php echo $this->layout()->prawaK; ?>


nastepnie w indexControlers

$this->_helper->layout()-> lewaK= = $this->render('guzikZaloguj');
$this->_helper->layout()-> srodekK= $this->render('powitanie');
$this->_helper->layout()-> prawaK= $this->render('cos');


a w loginControlers

$this->_helper->layout()-> lewaK= = $this->render('ostatniZalogowani');
$this->_helper->layout()-> srodekK= $this->render('formularzLogowania');
$this->_helper->layout()-> prawaK= $this->render('cos2');



guzikZaloguj.phtml powitanie.phtml etc... mam w katalogu /application/layouts/scripts




czy dobrze kombinuje ? co robie zle ? - bo niestety nie osiagam zamierzonego efektu. W dodatku nie dostaje zadnych warningow errorow noticow - nic co by sugerowalo ze cos robie zle :|

przypisanie do $this->_helper->layout()-> lewaK = "asdada" dziala i wyswietla na stronie tekst - natomiast chcialbym zeby wyswietlalo zawartosc 'template'a'

z gory dzieki za poswiecony czas i pomoc

Ten post edytował matchor 17.10.2009, 23:02:23
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
seth-kk
post
Post #2





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


to twoje application/views/scripts/index/index.phtml to widok a nie layout

ten efekt mozna osiagnac na wiele sposobow
chyba najprostszy to switch/if + action view helper
czyli cos w stylu
  1. <div id="left>
  2. <?php
  3. switch($controller_action)
  4. {
  5. case 'index_index':
  6. echo $this->action(...);
  7. break;
  8. //....
  9. }
  10. ?>
  11. </div>
  12. <div id="center">
  13. <?= $this->layout()->content; ?>
  14. </div>
  15. <div id="right">
  16.  
  17. <?php
  18. switch($controller_action)
  19. {
  20. case 'index_index':
  21. echo $this->action(...);
  22. break;
  23. //....
  24. }
  25. ?>
  26. </div>

ale rownie dobrze moznaby action helper zastapic partialami lub sterowanie przesunac do controllerow lub helperow jesli zawartosc bocznych elementow nie powina trafiac do glownego contentu
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 07:01