Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Ładowanie akcji oraz widoków w FW, Dyskusja
menic
post 11.01.2007, 16:09:16
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 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 smile.gif

EDIT: Zmieniłem nazwe tematu, na bardziej adekwatny smile.gif

Ten post edytował menic 12.01.2007, 15:23:36


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
marcin96
post 11.01.2007, 16:41:49
Post #2





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 21.08.2003
Skąd: Będzin

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


W moim frameworku mam to tak rozwiązane, że każdy widok/akcja może być odpalony z parametrami. ..zatem dla przykladu w akcji, ktora utworzyla nowy news:

  1. <?php
  2.  
  3. function Execute()
  4. {
  5.  [...]
  6.  // kod wewnatrz akcji
  7.  // $rek['ID'] - id ostatniego newsa
  8.  $this->setNext('NewsPlus', 'NewsPlusShow', array('newsPlusShow'=>$rek['ID'], 'saved'=>true));
  9.  return true;
  10. }
  11.  
  12. ?>


..normalnie widok NewsPlusShow odpalam z parametrem get newsPlusShow zwierajacym ID rekordu, ktory chce pokazac Tutaj wywoluje ja z parametrem wewnetrznym.. a co robie w samym widoku?

  1. <?php
  2. function Display()
  3. {
  4.  
  5.  $idNews = $this->getParam('newsPlusShow', array('get','action'), 'Integer'); // pobieramy ID
  6.  $saved = $this->getParam('saved', 'action', 'Integer'); // dzieki temu moge potem to .tpl przekazac informacje, ze trzeba wyswietlic komun
    ikat o nowoutworzonym news
  7. }
  8. ?>


..dzięki temu w widoku nie obchodzi mnie skąd parametr przyszedł i czemu widok został odpalony (bezpośrednio przez Router, czy w wyniku odpalenia jakiejś innej akcji). Oprócz 'get' i 'action' metoda getParam obsługuje mi też 'post'.

W sumie teraz się zorientowałem, że nie do końca na tym polega Twój problem. Tobie chodzi o tzw łańcuchy akcji. Rozwiązałem to u siebie podobnie jak to zrobił Hawk w swoim Phiend (przynajmniej w Phiend 1 tak było..). Pierwsza akcja jest odpalana rzeczywiście przez router, lecz następne są odpalane jako wynik działania akcji/widoku poprzedniego. Jeżeli nie ma w kolejce żadnych akcji/widoku, to wyświetlam to, co się nazbierało w moim obiekcie Response. Ustawianie następnej akcji odbywa się za pomocą setNext (tak, jak powyżej to pokazałem), które dodaje do kolejki w kontrolerze - posiadam jeden, centralny kontroler w swojej implementacji MVC.

Może to w czymś Tobie pomoże ;>)

Pozdrawiam


--------------------
www.calek.info
Go to the top of the page
+Quote Post
Cysiaczek
post 11.01.2007, 17:27:31
Post #3





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




A co gdyby przenieść sterowanie z kodu do... pliku XML? Spotkałem przykład w książce i zaimportowałem sobie ideę.
Wg. mnie łańcuchy akcji to jedna z bardziej skomplikowanych rzeczy w FW. Przywykłem już patrzeć na akcje jako na uczestników pewnego bardzo rozproszonego systemu.

Moja definicja akcji.
Akcja to podstawowa jednostka w systemie odpowiadająca za wykonanie określonego zadania (model) przy użyciu dostępnych jej bibliotek i funkcji. Wyrózniam dwa podstawowe typy akcji (chyba nie tylko ja):
- prosta
- złożona (kompozyt)

Akcja złożona może składać się z innych akcji wywoływanych w łańcuchu i korzystać z wyników pracy tych akcji. Jej ciało może zostać wykonane na początku łańcucha, na jego końcu (częstszy przypadek) lub po dowolnej z subakcji. Subakcje są wywoływane w pętli przez kontroler i powinny być tak poskładane, żeby w żaden sposób nie mogły doprowadzić systemu do upadku.
Akcja może też przekazać działanie do innej akcji (forward), ale nie sama, a za pośrednictwem kontrolera. Sama ustawia jedynie swój status, który odczytany przez kontroler umożliwia uruchomienie (np. przez header()) kolejnej akcji. Akcja wywołana funkcją forward nie jest częścią łańcucha akcji i stanowi niejako jego przerwanie.
Celem istnienia akcji złożonych jest ponowne wykorzystanie istniejącego kodu poprzez użycie go w niezmienionej formie w innym kontekście. Uff : P

Sorry, że jest tak mądrze napisane, ale może komuś się przyda. Wg. mnie, właśnie to jest esencja wszystkich frameworków - organizacja pracy z kodem i styl programowania. Jako, że aktualnie piszę takie cóś (idzie jak krew z nosa), pozwoliłem sobie na podsumowanie dotychczasowych przemyśleń.

Pozdrawiam.

Ten post edytował Cysiaczek 11.01.2007, 17:53:47


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
menic
post 11.01.2007, 17:54:44
Post #4





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

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


@Cysiaczek: Zgadzam sie z Toba, ale chyba nie do konca. Nie wiem czy dobrze zrozumiałem twoją definicje forward() Wydaje mi sie ze pomyliłeś z redirect() (głownie przez tenheader()), aczkolwiek moge sie mylić smile.gif A wracając do mojego pierwszego rozwiązania. Wyznaje zasade uproszczenia sobie działań, nawet jesli nie wygląda to profesjonalnie, ważne ze skutecznie i prosto. A o to w koncu w programowaniu chodzi. Do pobierania służą funkcje wbudowane w kontroler. W najczestrzym wypadku tak jak opisałem pobierają one dane na podstawie Routera. Jesli jednak uzyjemy funkcji forward() to w jej ciele ustawiamy recznie akcje. Moze przyklad to lepiej opisze niz moje słowa smile.gif
  1. <?php
  2. public static function getModule( $sModule = null )
  3. {
  4. if( $sModule == null )
  5. {
  6. $aUrl = Router::decodeUrl();
  7. if( !isset( $aUrl['module'] ) )
  8. {
  9. return _DEF_MODULE;
  10. }
  11. else
  12. {
  13. return $aUrl['module'];
  14. }
  15. }
  16. else
  17. {
  18. return $sModule;
  19. }
  20. }
  21. ?>
  1. <?php
  2. public function forward( $sAction, $sModule = null )
  3. {
  4. Controller::getAction( $sAction );
  5. Controller::getModule( $sModule );
  6. }
  7. ?>


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
Cysiaczek
post 11.01.2007, 18:19:55
Post #5





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Przez forward rozumiem uruchomienie innego łańcucha akcji. Ok. za mnie niech przemówi XML : )

  1. <index>
  2.      <status>
  3.            <ok>
  4.                  <view>index</view>
  5.            </ok>
  6.            <error>
  7.                  <forward>error</forward>
  8.            </error>
  9.      </status>
  10.  
  11.      <subactions>
  12.            <news />
  13.            <menu />
  14.      </subactions>
  15. </index>
  16.  
  17. <news>
  18.      <status>
  19.            <ok>
  20.                  <view>news</view>
  21.            </ok>
  22.            <error>
  23.                  <view>error</view>
  24.            </error>
  25.      </status>
  26. </news>
  27.  
  28. <menu>
  29.      <status>
  30.            <ok>
  31.                  <view>listmenu</view>
  32.            </ok>
  33.            <error>
  34.                  <view>error</view>
  35.            </error>
  36.      </status>
  37.  
  38. </menu>
  39.  
  40.  
  41. <error>
  42.      <status>
  43.            <ok>
  44.                  <view>ErrorPage</view>
  45.            </ok>
  46.            <error>
  47.                  <exit>Blad krytyczny</exit>
  48.            </error>
  49.      </status>
  50.  
  51.      <subactions>
  52.            <logError />
  53.            <sendNotify />
  54.      </subactions>
  55. </error>




W powyższym przykładzie wywołując akcję index wywołujemy subakcje
<news />
<menu />
W razie powodzenia zostaną wybrane odpwiednie widoki i system jakoś sobie dalej poradzi. W razie błędu kontroler uruchomi nowy łańcuch, czyli akcję <error />. To, czy zrobi to przez header, czy nie, jest kwestią drugorzędną. Faktycznie można uznać, że mój forward to coś w rodzaju redirect i chyba można stosować zamiennie ta nazwę : )
powyższy przykład nie uwzględnia oczywiście modułów (bo i po co - to przykład)
Twoja metoda forward() to u mnie ekwiwalent execute(). Akcja go nie ustawia.
Jeszcze pokażę akcję.
  1. <?php
  2. class Index extends Action {
  3.  
  4. public function Perform(){
  5. $test=1;
  6. // tak poglądowo
  7. $this->aVars['tekst']="jakiś tekst";
  8. $this->aVars['lista']=$array;
  9.  
  10. if ($test==1){
  11. $this->setStatus("ok");
  12. }
  13. else {
  14. $this->setStatus("error");
  15. }
  16.  
  17. }
  18.  
  19. }
  20. ?>


Pozdrawiam


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
menic
post 11.01.2007, 19:19:43
Post #6





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

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


Kod który przedstawiłem dla funkcjiforward jest szczątkowy. Chodzi tylko o ukazanie głownego problemu jakim jest "dobieranie" sie do informacji jaki jest aktualny moduł i akcja winksmiley.jpg Forward własciwie jest tylko funkcją dostępową do zmiennych prywatnych smile.gif Ustawia on odpowiednie zmienne w klasie i metoda executeAction wywołuje akcje i nastepnie widok dla tej akcji. Całośc znajduje sie w klasie AppController. Tak więc mamy: Controller -> AppController->View && Action. Tak to wygląda w uproszczeniu.

Ciekawie prezentuje sie to drzewo xml. Mogłbyś napisać coś wiecej snitch.gif

Zastanawia mnie jeszcze jedno pytanie. Jak najskuteczniej wywołać kilka akcji wraz z widokami w jednej akcji? Troche namieszałem. Dajmy przyklad:
  1. <?php
  2. class DefaultAction extends View
  3. {
  4. public function Index()
  5. {
  6. $this->newModel( 'Index', 'Test');
  7. $this->newModel( 'Info', 'Modul');
  8. }
  9. }
  10. ?>
Najspierw wywołujemy akcje Index() w module Default. W tej akcji wywołujemy 2 nowe akcje. Czyli wywołując jedną akcje otrzymujemy ich aż 3. Kiedyś sie nad tym męczyłem jak tworzyłem CMSa, ale nic ciekawego nie wymysliłem. Teraz po przejsciu na OOP chce to już rozwiązać. Przydatne jest to w sytuacji kiedy mamy moduł newsy oraz moduł komentarze. Wywołujemy akcje showNews i w tejże akcji wywołujemy akcje ShowComments z Modułu komentarze. Oczywiscie mozna przekazywać parametry do akcji ShowComments z wnetrza ShowNews takie jak id komentarza itp. Na przeszkodzie stoi mi tylko połączenie wyświetlania szablonów. Bo jest to zrobione, że mamy głowny szablon strony z całym szkieletem w którym jest $this->LoadView(). LoadView załaduje nam podszablon dla danej akcji i modułu. Wszystko działa bardzo ładnie dla pojedynczego wywołania akcji bądź dla forward. Natomiast nie wiem jak to rozwiązać dla większej ilości.
[EDIT] Męcze sie już nad tym pare godzin, aby wywołać klilka akcji w jednej. Prawie mi sie udało, tylko jest jeden problem. Nie wiem jak "złączyć" akcje z widokiem w taki sposób aby widok mógł sie odwołać tylko do zmiennych z jego akcji. Bo w tym do czego doszedłem, widok "gubi" $this. Czy jest jakiś sposób aby "połączyć" obiekty? Przyklad:
  1. <?php
  2. $o = new Obiekt1
  3. $o->funkcja();
  4.  
  5. $o = new Obiekt2; //Zeby Obiekt2 "dołączył" sie do Obiekt1
  6. $o->Innafunkcja();
  7. ?>

Jest coś podobnego mozliwe? Albo może kto ma jakiś złoty środek? Ja juz nie mam pomysłow worriedsmiley.gif

Ten post edytował menic 11.01.2007, 23:56:53


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
Cysiaczek
post 12.01.2007, 09:25:23
Post #7





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Najlepszy moim zdaniem (ale do średnich i dużych) projektów jest wzorzec two-step-view, który zakłada najpierw rendering mniejszych widoków, a potem ich połączenie w całość.
Jeśli spojrzysz na XML, który dałem wyżej, to zobaczysz znaczniki <view>nazwa</view>. To są właśnie widoki, które będą renderowane. W tym drzewie pominąłem część znaczników, więc nie ma np, znacznika <viewFrame>nazwa</viewFrame>, który jeśli akcja jest wywoływana żądaniem (nie jest subakcją), stanowi schemat łączenia poszczególnych mniejszych widoków. W prezentowanym przykładzie, jeśli wszystko pójdzie dobrze, to akcja Index będzie miała do dyspozycji aż 3 widoki
news.tpl
menulist.tpl
index.tpl

oraz schemat łaczenia index.frame.tpl

news.tpl (pseudo-kod)
  1. <? print $news['title']; ?>
  2. <br>
  3. <? print $news['body']; ?>


index.frame.tpl
  1. <html>
  2. <head></head>
  3. <body>
  4. <div>
  5. <? AHelper->get("menu"); ?>
  6. </div>
  7. <div>
  8. <? AHelper->get("news"); ?>
  9. </div>
  10. </body>
  11. </html>


Metoda get() przyjmuje jako parametr nazwę akcji i dołącza aktualny widok tej akcji (wybrany przez kontroler na podstawie statusu zgłoszonego przez akcję) z pliku XML. Oczywiście każdy widok ma dostęp tylko do danych, które wygenerowała jego akcja (wewnątrz metody get()). Wydaje mi się, że właśnie o taki złącznik Ci chodzi, tak?

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
menic
post 12.01.2007, 12:05:12
Post #8





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

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


Nie wiem czy sie rozumiemy do konca.
Widok jest podzielony na szablon głowny:
  1. Witamy na stronie Sparkle Works :)<hr><br>
  2.  
  3. <?php
  4. $this->loadModuleView();
  5. ?>
  6.  
  7. <br><br><br><br><br><br>
  8. <hr>
  9. Powered by Sparkle
oraz Szablon akcji. Metoda loadModuleView() to poprostu include('szablonAkcji.php); I to nad czym sie aktualnie męcze to jak zrobić aby przy wywołaniu Akcji ShowNews jednoczesnie wywołać ShowComments, bez ingerencji w głowny szablon. Kawałek kodu z AppController:
  1. <?php
  2. public function executeAction( $sAction, $sModule, $a = '' )
  3. {
  4. //echo 'Action'. $sModule;
  5. $sTempModule = $sModule.'Action';
  6. $this->oModule = new $sTempModule;
  7. $this->oModule->$sAction();
  8.  
  9. $t = $this->s($this->oModule, $sAction, $sModule);
  10.  
  11. if(is_array(self::$om))
  12. {
  13. include(_SPARKLE_PATH.'/app/'._SPARKLE_APP.'/modules/'.self::$om['mod'].'/action/Actions.class.php');
  14. $this->oModules = new TestAction;
  15. $this->oModules->Index();
  16. }
  17. $this->oModule->loadAppView($this->oModule);
  18. //echo self::$om;
  19. }
  20.  
  21. public function newModel( $sAction, $sModule = null )
  22. {
  23. include(_SPARKLE_PATH.'/app/'._SPARKLE_APP.'/modules/Test/action/Actions.class.php');
  24. $o = new TestAction;
  25. $o->Index();
  26. //$this->s($o, $sAction, $sModule);
  27. }
  28. ?>
Nie przejmujcie sie bałaganem, gdyż to tylko testy winksmiley.jpg I wszystko jest prawie pwisane na sztywno. Plik Action wyglada tak:
  1. <?php
  2. class DefaultAction extends View
  3. {
  4. public function Index()
  5. {
  6. $this->d = 'sssssdszzzzzzzzzzzzzzz<br>';
  7. //$this->test = 'duuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupa';
  8. //echo '<br>ddddddddddddddddddddddddddddddddddddd';
  9. $this->newModel( 'Index', 'Test');
  10. }
  11. }
  12. ?>
I to własnie on jest wywołany w przegladarce. Wenatrz akcji index wywołujemy moduł Test, z akcją Index. To jakoś działa. Tylko niestety wszystko sie pipeprzy w
  1. <?php
  2. $this->oModule->loadAppView($this->oModule);
  3. ?>
Przez takie wywołanie gubie referencje w szablonie do Obiektu $this->oModules. I wszelkie zmienne zadeklarowane w Module test w akcji index, nie zostaną wyswietlone w szablonie. Jak temu zaradzić? sadsmiley02.gif sad.gif


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
Cysiaczek
post 12.01.2007, 12:45:59
Post #9





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Wprowadź obiekt kolekcji uruchamianych modułów. Przy próbie inicjalizacji nowego modułu, referencję wywołującego umieść najpierw w kolekcji, a dopiero potem wywołaj nowy.

  1. <?php
  2. $collection->registerModule($this);
  3. $this->newModel( 'Index', 'Test');
  4. ?>


Potem jak potrzebujesz danych z modułu, to pobieraj go z kolekcji.
  1. <?php
  2. $module=$collection->getModule($moduleName);
  3. // albo konkretnie
  4. $this->oModule->loadAppView($collection->getModule($this->oModule));
  5. ?>


Pozdrawiam.

Ten post edytował Cysiaczek 12.01.2007, 12:47:06


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
menic
post 12.01.2007, 15:34:55
Post #10





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

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


Nie za bardzo rozumiem. Obiekt kolekcji? Co to sad.gif


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
Cysiaczek
post 12.01.2007, 16:16:54
Post #11





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Obiekt, który coś przechowuje i pozwala na przeglądanie tego oraz zarządzanie itp. W najprostszym przypadku może to być tablica, ale obiekt daje więcej możliwości.

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
Turgon
post 12.01.2007, 16:58:10
Post #12





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


Czyli na polskie tłumacząc napisz sobie rejestr ;]
Co do widoków używam ten wzorzec co podał Cysiaczek proste i wygodne ;] .


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
menic
post 12.01.2007, 20:25:31
Post #13





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

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


Ufff....
Już sie uporałem, bez rejestru winksmiley.jpg Troche pokombinowałem z referencjami do obiektów i działa guitar.gif
Narazie to tylko światełko w tunelu, bo większość rzeczy wpisałem na sztywno, ale to już poprawki kosmetyczne smile.gif Aby nie myliły sie zmienne w szablonach, tzn aby nie została wykorzystana przez przypadek zmienna z akcji pierwszej w szablonie drugim zrobiłem małe myku snitch.gif Tzn. Zamiast w szablonach odwolywac sie do zmiennych przez
  1. <?php
  2. $this->zmienna
  3. ?>
robimy tak:
  1. <?php
  2. $NazwaModulu->zmienna
  3. ?>
W ten sposób mamy wszystko odzzielone w szablonach. Natomiast w akcjach uzywamy normalnie $this->zmienna smile.gif Jednak mój sukces nie kończy dyskusji Rkingsmiley.png

Turgon: Mógłbys troche szerzej opisać ten "wasz" wzorzec widoków biggrin.gif


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
Turgon
post 14.01.2007, 10:43:49
Post #14





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


Tzn. tak ;]

Np. mam newsy i podpinam tam obiekt view. Renderuje sobie do zmiennej po kolei każdego. Podaje je szablonowi newses, który je listuje i znowu do zmiennej. Potem ta zmienna dopiero wędruje do szablonu index i tam jest wyświetlana razem z nim.


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
menic
post 14.01.2007, 12:06:53
Post #15





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

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


Czyli zawartość szablonu news wczytujesz do zmiennej zamiast includowac szablon? Zgadza sie?


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
Turgon
post 14.01.2007, 20:12:44
Post #16





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


Tak ;] To jest wygodne i szybkie smile.gif Tak jest np. w CI


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
Cysiaczek
post 14.01.2007, 20:23:16
Post #17





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Ja z kolei includuję : )


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
menic
post 14.01.2007, 20:45:38
Post #18





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

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


Cytat(Turgon @ 14.01.2007, 20:12:44 ) *
Tak ;] To jest wygodne i szybkie smile.gif Tak jest np. w CI

Wygodne to napewno smile.gif Ale czy szybkie... Include szybsze guitar.gif


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
Turgon
post 14.01.2007, 22:07:23
Post #19





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

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


menic: Bez różnicy ;] Sprawa gustu przedewszystkim winksmiley.jpg


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
menic
post 14.01.2007, 22:12:06
Post #20





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

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


W praktyce, podejrzewam jest niewielka róznica jesli chodzi o wydajność. Ale jeśli chodzi o wygode to jak najbardziej. Gdybym u siebie tak zrobił to nie męczyłbym sie tyle z ładowaniem akcji itp. Ale no wlasnie... Kwestia gustu winksmiley.jpg
A co do moich akcji i widoków to już chyba skonczyłem skończyłem biggrin.gif Właściwie zrobiony jest już cały Controller, AppController, oraz View. smile.gif Sporo sie męczyłem z forward'em i załadowaniem akcji w akcji, ale w koncu sie udało. Było warto poświęcic tyle czasu. Mam tylko nadzieje, że nie odbije sie to negatywnie na zaliczeniach, które mam w tym tygodniu winksmiley.jpg

Ten post edytował menic 14.01.2007, 22:54:35


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 18.04.2024 - 15:58