![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 17.06.2010 Ostrzeżenie: (0%)
|
Witam,
mam taki mały problem i wierzę, że ktoś zna sensowną odpowiedź na ten temat. Mam prostą aplikację ( 3 kontrollery : index, products, contenst ) - index ( layout: default / 3 kolumny / w lewej kolumnie box z kategoriami produktów, pozostałe kolumny jakiś bełkot marketingowy ) - products ( layout: default / 3 kolumny / w lewej kolumnie box z kategoriami produktów, środkowa produkty z danej kategorii, prawa bełkot market... (IMG:style_emoticons/default/winksmiley.jpg) ) - contents ( sam bełkot market... ) i teraz.. aby wyświetlić ten boks z kategoriami mogę w kontrolerze index i products pobierać listę kategorii z bazy przekazywać ją do widoku i wyświetlać ale w ten sposób za każdy razem powielam fragment html wyświetlający kategorie. w symfony był do takich zadań components i było po problemie... z zendzie szukałem czegoś podobnego i nici ... (IMG:style_emoticons/default/sad.gif) jak rozwiązać taki wspólny komponent/widget czy jak kto woli żeby tylko w layout lub scripts wstawić kod tak jak w sf: include_components('') i po sprawie ? |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
|
|
|
|
Post
#3
|
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Najlepszym sposobem będzie stworzenie własnego helpera widoku, w którym wyciągasz z modelu dane i przekazujesz je do helpera partial. W skrypcie partial robisz wyświetlanie kategorii.
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 17.06.2010 Ostrzeżenie: (0%)
|
no oki tworze controller: Category i jedna z jego akcji wyswietla mi boks z kategoriami.. tylko, że ktoś kto zna budowę app może sobie wpisać xxxxxx.pl/category/boxcategory i dostanie kategorie (IMG:style_emoticons/default/smile.gif) niby w niczym strasznym to nie przeszkadza ale czy nie ma innego rozwiązania ?
------ @batman - to rozwiązanie z helperem nie głupie / jakiś przykład masz może ? Ten post edytował piotr90 22.07.2010, 14:30:58 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
Cytat no oki tworze controller: Category i jedna z jego akcji wyswietla mi boks z kategoriami.. tylko, że ktoś kto zna budowę app może sobie wpisać xxxxxx.pl/category/boxcategory i dostanie kategorie niby w niczym strasznym to nie przeszkadza ale czy nie ma innego rozwiązania ? a skąd będzie wiedzieć jak nazywa się ta akcja? zresztą w parametrach możesz przekazać że jest to z helepra widoku i wywalać na stronę główną czy coś gdy nie jest. Lepsze rozwiązanie? Myślę że ten helper do tego został stworzony więc sądzę że jest to najlepsze rozwiązanie. Pomysł z helperem widoku też nie jest zły, ale tutaj wrzucasz linijkę i już to masz, a tak trzeba napisać helper i stworzyć partial'a (IMG:style_emoticons/default/smile.gif) - fakt nie wiele roboty ale zawsze. |
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Niestety nie mam nic pod ręką. Zaprezentuje na przykładzie pseudokodu:
Zamiast partialLoop (lub partial) można użyć metody render obiektu view. Wówczas nie będzie klonowany obiekt view, co na pewno będzie wydajniejsze. Z drugiej jednak strony partial daje Ci odrębną ""przestrzeń nazw", w której widoczne są przekazane zmienne. Pomysł z helperem widoku też nie jest zły, ale tutaj wrzucasz linijkę i już to masz, a tak trzeba napisać helper i stworzyć partial'a (IMG:style_emoticons/default/smile.gif) - fakt nie wiele roboty ale zawsze. Helper i partial tworzysz raz i masz spokój. Wszystkie późniejsze modyfikacje wprowadzasz w jednym miejscu. |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
Cytat Helper i partial tworzysz raz i masz spokój. Wszystkie późniejsze modyfikacje wprowadzasz w jednym miejscu. A w moim zastosowaniu nie? |
|
|
|
Post
#8
|
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
A w moim zastosowaniu nie? Wybacz, źle przeczytałem. Myślałem, że chodzi Ci o action helper, a nie helper widoku action (IMG:style_emoticons/default/winksmiley.jpg) To rozwiązanie nie jest najlepsze, chociażby z powodu, o którym wspomniał ~piotr90. Użytkownik raczej nie wpadnie na pomysł z nazwą akcji, ale robot już może. Poza tym ten helper odpala całą machinę, a nie tylko renderuje plik widoku. |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
Cytat To rozwiązanie nie jest najlepsze, chociażby z powodu, o którym wspomniał ~piotr90. Użytkownik raczej nie wpadnie na pomysł z nazwą akcji, ale robot już może. Poza tym ten helper odpala całą machinę, a nie tylko renderuje plik widoku. Dispatch odapla, fakt trochę nie fajnie, ale np gdyby chciał mieć stronę z tymi kategoriami musiałby zrobić i tak pustą akcję gdzie w pustym widoku by wywoływał helpera widoku (IMG:style_emoticons/default/smile.gif) W tym przypadku plugin jest lepszym rozwiązaniem ,ale kto wie czy użytkownik później nie będzie chciał wyświetlać listy tych kategorii w głównym widoku? |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 2 Dołączył: 21.10.2006 Ostrzeżenie: (0%)
|
http://zendframework.com/manual/en/performance.html
Nie jest fajnie korzystać z Action Helpera (IMG:style_emoticons/default/winksmiley.jpg) kolega @batman opisał ci prawidłowy sposób, nic dodać nic ująć. |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 17:42 |