Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ładowanie akcji oraz widoków w FW, Dyskusja
menic
post
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Będe tu zamieszczał pytania odnoscie działania FW, oraz róznych kruczków (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Pierwsze z nich to pobieranie aktualnej akcji i modułu. Moge to zrobić pobierając z adresu w Kontrolerze module oraz action. Jesli wartosci sa puste podstawiamy domyslne. Bułka z masłem. Jednak co jesli rozszerzymy funkcjonalnosc o znaną funkcje forward()? Przekierowywuje ona do innego modułu i/lub akcji bez zmiany parametrów w adresie. I co teraz? W adresie mamy dane dotyczącego poprzedniej akcji, wiec pobieranie z adresu nie ma sensu. W tym wypadku odpada pobieranie z adresu. Jak to najlepiej rozwiązać? Jak wy to widzicie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

EDIT: Zmieniłem nazwe tematu, na bardziej adekwatny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował menic 12.01.2007, 15:23:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
widmogrod
post
Post #2





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 28.10.2005
Skąd: kraków

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


Witam, zaprezentuje moje rozwiązanie tego problemu

posiadam plik konfiguracyjny bloków np:
  1. <block>
  2. <default>
  3.    <layout>index.tpl<layout>
  4.    <blocks>
  5.         <main controller="index" action="index" />
  6.         <info controller="index" action="info" />
  7.    </blocks>
  8. </default>
  9. <login>
  10.    <layout>login.tpl<layout>
  11.    <blocks>
  12.         <main controller="login" action="index" />
  13.    </blocks>
  14. </login>
  15. </block>


default - są zdefiniowane domyślnie odpalane bloki i szablon który ma je wykorzystać
login - jak wyżej ..

z odpaleniem default nie ma problemu ( odpalany domyślnie ) ale teraz jak odpalić login otóż posiadam aliasy na rutera które definiują w sobie odpalane bloki przykład pliku konfiguracyjnego aliasów
w szablonie wykorzystuje je w następujący sposób

  1. <alias>
  2.    <login controller="logowanie" action="main" block="login"/>
  3. <alias>


w kontrolerze definiuje "łapanie" bloków poprzez metode setBlock() np.

  1. <?php
  2. class indexAction extends AController
  3. {
  4. public function index(){
  5. $view = $this->getView();
  6. $this->setBlock('main', $view->parse('index/main.tpl');
  7. }
  8.  
  9. public function info(){
  10. $view = $this->getView();
  11. $view->infoMSG = 'jakaś informacja';
  12. $this->setBlock('info', $view->parse('index/info.tpl');
  13. }
  14. }
  15.  
  16. class logowanieAction extends AController
  17. {
  18. public function main(){
  19. $view = $this->getView();
  20. $this->setBlock('main', $view->parse('logowanie/main.tpl');
  21. }
  22. }
  23. ?>


i wykorzystuje je w szablonie głównym poprzez taką linijkę
  1. <?php print $this->block->main?>


... mam nadzieje że przedstawiłem to w miare zrozumiale ..

PS1. moim zdaniem definiowanie odpalanych bloków w akcji jest delikatnie chybione, bo gdy chcemy wzbogacić widoko jakieś dodatkowe bloki trzeba przeszukać klasy akcji i je zmodyfikować, a trzymając to w jednym nie pogubimy się przy większych projektach ..

PS2. można też zrobić pomocnika dla widoku który odpala odpowiednie akcje tj ..
  1. <?php print $this->block->run('index', 'main');?>

wtedy zabawa nie jest już tak hardkorowa z plikami konfiguracyjnymi ... ale czy jest to zgodne z MVC (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) co o tym sądzicie ..
Go to the top of the page
+Quote Post

Posty w temacie
- menic   Ładowanie akcji oraz widoków w FW   11.01.2007, 16:09:16
- - marcin96   W moim frameworku mam to tak rozwiązane, że każdy ...   11.01.2007, 16:41:49
- - Cysiaczek   A co gdyby przenieść sterowanie z kodu d...   11.01.2007, 17:27:31
- - menic   @Cysiaczek: Zgadzam sie z Toba, ale chyba nie do k...   11.01.2007, 17:54:44
- - Cysiaczek   Przez forward rozumiem uruchomienie innego łańcuch...   11.01.2007, 18:19:55
- - menic   Kod który przedstawiłem dla funkcjiforward jest sz...   11.01.2007, 19:19:43
- - Cysiaczek   Najlepszy moim zdaniem (ale do średnich i dużych) ...   12.01.2007, 09:25:23
- - menic   Nie wiem czy sie rozumiemy do konca. Widok jest p...   12.01.2007, 12:05:12
- - Cysiaczek   Wprowadź obiekt kolekcji uruchamianych modu...   12.01.2007, 12:45:59
- - menic   Nie za bardzo rozumiem. Obiekt kolekcji? Co to   12.01.2007, 15:34:55
- - Cysiaczek   Obiekt, który coś przechowuje i pozwala na przeglą...   12.01.2007, 16:16:54
- - Turgon   Czyli na polskie tłumacząc napisz sobie rejestr ;]...   12.01.2007, 16:58:10
- - menic   Ufff.... Już sie uporałem, bez rejestru Troche ...   12.01.2007, 20:25:31
- - Turgon   Tzn. tak ;] Np. mam newsy i podpinam tam obiekt ...   14.01.2007, 10:43:49
- - menic   Czyli zawartość szablonu news wczytujesz do zmienn...   14.01.2007, 12:06:53
- - Turgon   Tak ;] To jest wygodne i szybkie Tak jest np. w C...   14.01.2007, 20:12:44
|- - menic   Cytat(Turgon @ 14.01.2007, 20:12:44 )...   14.01.2007, 20:45:38
- - Cysiaczek   Ja z kolei includuję : )   14.01.2007, 20:23:16
- - Turgon   menic: Bez różnicy ;] Sprawa gustu przedewszystkim   14.01.2007, 22:07:23
- - menic   W praktyce, podejrzewam jest niewielka róznica jes...   14.01.2007, 22:12:06
- - widmogrod   Witam, zaprezentuje moje rozwiązanie tego problemu...   15.01.2007, 15:05:08
- - menic   Szczerze? Nie rozumiem o czym piszesz Co masz po...   15.01.2007, 18:21:25
- - widmogrod   u mnie bloki są wynikiem akcji .. Po sparsowaniu ...   15.01.2007, 19:56:23
- - menic   Smieszne masz nazewnictwo wszystkiego. U mnie sa t...   15.01.2007, 20:58:03
- - widmogrod   CytatSmieszne masz nazewnictwo wszystkiego. U mnie...   15.01.2007, 23:22:03
- - arecki   Przyglądam się Waszej i snuje wnioski i pomysły . ...   16.01.2007, 00:20:00
- - menic   View dziediczy po AppControlerze, stąd dostepnośc ...   16.01.2007, 07:50:54
- - widmogrod   @menic - i już wszystko jasne ( ciekawe podejście ...   16.01.2007, 13:42:02


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 Aktualny czas: 6.10.2025 - 07:52