![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Witam mam pewien problem tworze sobie prosty "framework" no i widoki wygladaja u mnie jak w kohanie tzn jest glowna klasa View ktora wczytuje widok i podmienia elementy widok wyglada np tak:
Dla mnie tak jest wygodniej niz tworzyc klase view dla kazdego kontrolera i wtedy szablon Gdzie do {DIV1},{DIV2} i {DIV3} sa ladowanie poszczegolne komponenty/pluginy jednak troche mi to nie pasuje i wyczytalem w kilku watkach z archiwum pro ze lepiej uzywac widoki z php czyli moj widok podmienic na takie cos:
Lub widzialem ze mozna $this -> pole. I nie wiem zabardzo jak zrobic klase tak aby podmieniala $div1 na wartosc ktora ustawie w klase View w kontrolerze. Tzn w kontrolerze mamy
Jak zrobic by klasa ktora wczyta widok news.php podmienila zmienna z prawdziwego php? Na szablonach to jest prosto zrobic jednak jest to malo elastyczne bo wszystkie warunki lub sprawdzenie czy ktos jest zalogowany sa na poziomie kontrolera co zmusza mnie czasami do robienia kilka roznych szablonow. Do tego jesli podam tablice argumentow do podmiany musze robic foreach() na poziomie kontrolera lub w moim przypadku na poziomie klasy View by wszystko podmienic co jest glupie i nie elastyczne. Wiec prosze o pomoc. Ten post edytował marcio 25.09.2009, 23:16:12 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Oj bim2, jest już przecież funkcja extract.
Skoro już tak podpatrujesz inne frameworki, to zajrzyj do nich, zobacz jak tam jest to zrobione. Tak to robią w symfony, a tak w kohanaphp. Głupie masz też to, że funkcja SetVars (nazwy metod z dużej to już inna historia) ustawia tylko jedną zmienną, a jej nazwa wskazuje na więcej. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Oj bim2, jest już przecież funkcja extract. Oo, nie widziałem (IMG:style_emoticons/default/smile.gif) W sumie nigdy nie potrzebowałem przypisywać wartości do zmiennych w ten sposób. (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Cytat Głupie masz też to, że funkcja SetVars (nazwy metod z dużej to już inna historia) ustawia tylko jedną zmienną, a jej nazwa wskazuje na więcej. Mi tak wygodniej nazywac metody, zreszta kto powiedzial ze nie mozna ustawic kilka? Ok napisalem sobie testowa klase: http://pastebin.com/d7d23c505 jednak nie dziala ona w 100% jak bym chcial to znaczy jesli mam w widoku np kod html i potem To moge go ustawic na 2 sposoby:
Gdy np dane pobrane z modelu wygladalyby tak:
To gdy zrobie tak:
A w widoku foreach() na zmienna dane to dziala. Jednak gdy ustawie tak:
To juz nie dziala. Tak samo gdy pobieram jeden lub wiecej rekordow i zapisuje je do tablicy($news) na podstawie id czyli: Cytat Array ( [3] => Array ( [id] => 3 [controller] => Home [place] => div3 [component] => Auth ) [2] => Array ( [id] => 2 [controller] => Home [place] => div2 [component] => Comment ) [1] => Array ( [id] => 1 [controller] => Home [place] => div1 [component] => News ) ) Ustawiam:
I w widoku mam foreach() na $news to nie dziala CHyba cos przekombinowalem z funkcja SetVars() poprostu chce zeby automatycznie ustawiala dobrze dane jesli jest to jedna zmienna, tablica lub tablica 2 wymiarowa tAk jak pokazalem w przykladach. Jest juz pozno wiec moze cos zamotalem chetnie poprosze o pomoc oczywiscie dla @bim2 i @destroyyer jest +. P.S mysle ze do mojego fw dam mozliwosc korzystania z widokow jak i templatow. EDIT: Jezeli ktos chce napisalem "prototyp" klasy View ktory dziala jak powinien(testowane) na zwyklych zmiennych,tablicach i tablicach 2 wymiarowych: http://pastebin.com/m443d6346 Przykladowe widoki: http://pastebin.com/m12149f56 http://pastebin.com/m19af81fc Juz samego pobierania danych z modelu nie trzeba pokazywac Ten post edytował marcio 30.09.2009, 23:58:02 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 23:51 |