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
Sajrox
post
Post #2





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


Ja mam to tak:

Mój layout.phtml
  1. <?= $this->partial('header.phtml'); ?>
  2. <?= $this->partial('top.phtml', array('imagesPath' => $this->imagesPath)); ?>
  3. <?= $this->partial('left.phtml'); ?>
  4.  
  5. <div class="body_container">
  6. <div class="body">
  7.  
  8. <?= $this->layout()->content ?>
  9.  
  10. </div>
  11. </div>
  12.  
  13. <?= $this->partial('right.phtml') ?>
  14. <?= $this->partial('footer.phtml') ?>
  15.  


Ale mozna to zrobić też tak:
  1. <?php
  2. if (isset($this->partialUp) AND is_array($this->partialUp))
  3. {
  4. foreach ($this->partialUp as $lay)
  5. {
  6. if (isset($lay['name']) AND $lay['name'] != '')
  7. {
  8. if (isset($lay['params']))
  9. $params = $lay['params'];
  10. else
  11. $params = array();
  12.  
  13. $this->partial($lay['name'], $params);
  14. }
  15. }
  16. }
  17. ?>
  18.  
  19. <div class="body_container">
  20. <div class="body">
  21.  
  22. <?= $this->layout()->content ?>
  23.  
  24. </div>
  25. </div>
  26.  
  27.  
  28. <?php
  29. if (isset($this->partialDown) AND is_array($this->partialDown))
  30. {
  31. foreach ($this->partialDown as $lay)
  32. {
  33. if (isset($lay['name']) AND $lay['name'] != '')
  34. {
  35. if (isset($lay['params']))
  36. $params = $lay['params'];
  37. else
  38. $params = array();
  39.  
  40. $this->partial($lay['name'], $params);
  41. }
  42. }
  43. }
  44. ?>


Do zmiennych $this->partialUp oraz $this->partialDown dodajesz strony które chcesz dołączyć. Pisałem z ręki więć nie dam głowy że to działa (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował Sajrox 18.10.2009, 19:51:59
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: 4.10.2025 - 17:52