![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%) ![]() ![]() |
Witam
![]() Tworze swój pierwszy projekt w tym frameworku. W swoim szablonie w zależności od potrzeb generuje dwa rodzaje menu, jak rozwiązać problem renederowania wybranego menu w zależności od wybranego w kontrolerze? http://framework.zend.com/manual/en/zend.l...quickstart.html
Jak np. tu layout()->nav |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 258 Pomógł: 17 Dołączył: 22.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli potrzebujesz to na szybko to w kontrolerze mozesz wczytac coś pod zmieną
$this->layout->nav = 'cokolwiek' i taki tekst pojawi sie na ekranie. Jesli masz statycznego htmla to mozesz zapisac go jako plik i wczytac pod te zmienna. Tylko im dłużej o tym myśle to troche chybione generować kod html (widok) w kontrolerze. Jak znadję chwile to sprawdzę czy nie da się podstawić tam jakiegoś szablonu do wyrenderowania, chyba ze ktoś lepszy ubiegnie mnie z odpowiedzią (oby;) Pozdrawiam Mrok -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 12.01.2009 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
w kontrolerze twojej glownej akcji:
kod powyzej, dodaje do petli dispatchera akcje top z controllera menu w module general, ale ten kod powyzej nam nie starcza, bo mimo ze menu zostanie wygenerowane, to wynik zostanie dopisany do glownego segmentu obiektu response (content), dlatego pod koniec akcji top nalezy to zmienic, uzyjemy jednej z najlatwiejszych mozliwosci:
oczywiscie mozna to wyszstko tak fajnie usystematyzowac uzywajac pluginow i innych magicznych sztuczek ale to inny temat. pozdrawiam w kontrolerze twojej glownej akcji: $this->_helper->actionStack('top', 'menu', 'general'); kod powyzej, dodaje do petli dispatchera akcje top z controllera menu w module general, ale ten kod powyzej nam nie starcza, bo mimo ze menu zostanie wygenerowane, to wynik zostanie dopisany do glownego segmentu obiektu response (content), dlatego pod koniec akcji top nalezy to zmienic, uzyjemy jednego z najlatwiejszych mozliwosci:
oczywiscie mozna to wyszstko tak fajnie usustematyzowac uzywajac pluginow i innych magicznych sztuczek ale to inny temat. pozdrawiam Ten post edytował qba_rox 21.01.2009, 01:37:46 -------------------- Kodzimy!!!
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 535 Pomógł: 27 Dołączył: 3.05.2005 Ostrzeżenie: (20%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 0 Dołączył: 14.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem, męczę się z Zend_layout i to ładne parę dni, znalazłem taki tutorial:
http://www.goodcomputingtips.com/site/tag/zend-framework/ no i niby wszystko jest ok, niby działa jak ma działać, ale zmodyfikowałem layout.phtml:
i teraz mam pytanie gdzie mam wczytać plik navigacja.phtml? gdzie on powinien się znajdować? czy powinien być w layouts/scripts/ czy w views/scripts/index/ czy jeszcze w innej lokalizacji? czy muszę tworzyć nowy kontroler? Bardzo proszę o pomoc. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 11 Dołączył: 27.10.2010 Skąd: Kutno/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Możesz wykorzystać Zend_Navigation - możesz wczytać nawigację w Bootstrapie czy też Pluginie, w pluginie przypisujesz:
Jak nie wiesz, gdzie umieścić plugin, to zapytaj Google, a jak dalej nie będziesz wiedział, to pisz tutaj. I teraz w layoucie:
I powinieneś zobaczyć menu ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 0 Dołączył: 14.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Kłopot w tym że już google pytałem, patrzyłem na masę tutoriali, wszystkie są oczywiście w j. angielskim, po wpisaniu w google zend_layout doszedłem do 8 strony wyników
![]() Odnośnie problemu to nie chodzi mi konkretnie o nawigację, tylko ogólnie że będę chciał w layout stworzyć coś jak:
bo dla content wczytuje zawartość z pliku index.phtml, a odnosi się do tego akcja indexAction w indexController a do kolejnych takich odwołań co się odwołuje? Dlatego proszę o pomoc w zrozumieniu tego, bo nie wiem, za każdym razem jak będę chciał dodać np:
to muszę wszystko tworzyć jako plugin? Bo chciałbym pojąć ten zend_layout. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 2 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli chciałbyś dodać do swojego layout'u przykładowo:
Kod <?php echo $this->layout()->login ?> Musisz najpierw utworzyć kontroler i akcję o odpowiedniej nazwie tj. kontroler np. o nazwie załóżmy "uzytkownicy" a w nim powinna znajdować się akcja o nazwie loginAction. Po tych czynnościach masz pliczek w application/views/scripts/uzytkownicy/login.phtml. Aby wyświetliła Ci się dyrektywa echo $this->layout()->login musisz jeszcze w swoim layout'cie dodać $this->layout()->login = $this->action('login', 'uzytkownicy');. Powinno bez zarzutów pojawić Ci się zawartość login.phtml. -edit- Zakładam, że używasz komend Zend'a bo w innym wypadku po utworzeniu kontrolera i akcji nie będziesz miał automatycznie utworzonego pliku phtml. Jestem początkujące, więc mogę się mylić za co z góry przepraszam, ale ja tak ten Zend_Layout obczajam. Ten post edytował CzarnyGsm 15.09.2011, 13:21:16 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 0 Dołączył: 14.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ok, dzięki wielkie. Sprawdzę to co napisałeś w najbliższych dniach i napiszę czy pomogło, używam oczywiście komend zenda.
Działa wszystko, zaraz poprosze moderatora o plusik za pomógł jeśli się da ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 11:35 |