![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%) ![]() ![]() |
Mam ciekawe z mojego punktu widzenia pytanie związane z szablonem i widokami w zf - jak powinny być połączone? Nie chodzi tutaj o jakieś szczegóły techniczne np. funkcje! (IMG:style_emoticons/default/haha.gif)
Mam spory problem zamysłowy, nie do końca rozumiem w jakim celu są widoki jak szablony mogą je zastąpić. Przykładowo mamy kilka stałych części strony: top, footer jakiś blok z reklamami to wszystko ląduje na stałe w szablonie i nie ma wątpliwości gdzie to podczepić. Tutaj czas zaznaczyć, aplikacja ma mieć możliwość wgrywania i zmiany szablonów - fajnie by było by wszystkie pliki były w jednym katalogu by wkleić zmienić w adminie 1 rekord i wszystko grało. Strona zawiera też zmienną TREŚĆ mogą być nią newsy, jakaś galeria lub zwykły tekst - to powinno wylądować w szablonie czy widoku? - Niby łatwa odpowiedz widok (mamy już problem, zmiana szablonu jest równa z zmianą plików widoku, czy tak powinno być i nie da się tego uniknąć?), teraz następna część strony po prawej kolumna, na newsach zawsze jedna, na podstronach zależy od ustawień przy jej tworzeniu - gdzi eto umieścić? - Może jako helper widoku? Aplikacja ma zapewniać dużą konfigurację, administrator może stworzyć podstronę i wybrać w jakim charakterze będzie działać, news, tekst, galeria. (Zakładamy, że mogą istnieć dwie oddzielne galerię lub klika zbiorników na newsy). Jak to wszytko poskładać? Czym więcej czytam książek i blogów tym więcej możliwości, każda inna i nie wiem już jaka jest słuszna. Ps. Może maci jakąś większą aplikację którą można by zobaczyć choćby z screnów lub jest jakiś przykład w sieci np. gotowego bloga na zf? Ten post edytował ShadowD 20.01.2012, 22:23:56 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 4 Dołączył: 27.01.2012 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
W widoku trzymamy jak najmniejsze części/bloki , które następnie układamy w szablonie.
Szablon przetrzymuje miejsca gdzie mają być umieszczone bloki z widoków np. header, gorne menu, lewe menu, stopka, content. Przykładowo kod szablonu wyglądałby tak : Na pewno już widać konkretne miejsca i po nazwach od razu wiadomo, w której części strony będą się znajdować. Teraz załóżmy że w kontrolerze Index i akcji index chcemy wstawić górne menu. 1. Do IndexController/Index wstawiamy W ten sposób dodając akcję do stosu - uwaga - akcja wykonuje się dopiero na samym końcu bezpośrednio przed postDispatchem. 2. W przykładowej akcji MenuController/TopMenu dodajemy linijkę
która określa, w którym bloku szablonu ma być wyświetlona akcja - standardowo jest to content. 3. Tworzymy i edytujemy odpowiedni plik widoku dla menu. Dla elementów stałym takich jak header, stopka czy lewe menu, które dla większości aplikacji są niezmienne na każdej podstronie warto action stacki wywoływać w pluginie. Pluginy są wywoływane w bootstrapie jeszcze przed budowaniem akcji. Ten post edytował piotr.pasich 27.01.2012, 09:04:06 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie za podpowiedz, mam jednak jeszcze takie jedno pytanko - jak wdrożyć obsługę szablonów tak by dodanie nowego było jednoznaczne z przekopiowaniem jednego katalogu?
1. Rozumiem, że jedyną metodą jest wyjęcie widoków, helperów itd. do public i po katalogowanie ich w katalogach odpowiadających nazwom szablonów, da się to zrobić lepiej może jest inna metoda wskazana? 2. Związane z poprzednim, mam problem - mam "plugin" wywoływany w bootstrap w nim chciał bym zmienić ścieżkę do widoków, ale nic się nie dzieje (jak wstawię to do kontrolera - działa), a w tej klasie mam coś takiego: <?php
Title się ustawia prawidłowo, a ścieżka nie działa poprawnie. :-( Ogólnie siedzę w zend już trochę czasu i oprócz masy przydatnych rzecz zaczynam widzieć wady konstrukcyjne na obejście których wykorzystuję całą masę czasu, a i tak rozwiązania są raczej niepewne. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:53 |