![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 33 Dołączył: 10.05.2011 Skąd: Krak Ostrzeżenie: (0%) ![]() ![]() |
Chcę wykorzystać w swoim projekcie FlashMessanger. Kierując się ściśle dokumentacją nie ma z tym problemu, wszystko działa. Niestety dokumentacja zakłada że będę w każdym kontrolerze akcji pobierać wiadomości i przypisywać je do zmiennej w widoku. Żeby uniknąć niepotrzebnej roboty utworzyłem helpera widoku, który sam się tym zajmuje i może być wywołany w layoucie.
Problem powoduje ta linijka:
Po wywołaniu Zend_Controller_Action_HelperBroker::getStaticHelper wiadomości są usuwane z sesji. Kiedy pobieram wiadomości w kontrolerze i przypisuję do zmiennej widoku wszystko gra. Pogrzebałem w źródłach FlashMessangera. Jeśli dodam w jego kontrolerze linijkę:
wtedy wiadomość się wyświetla, w innym wypadku nie. Byłoby miło gdyby ktoś znał rozwiązanie. Będę wdzięczny za pomoc. Pozdrawiam. Ten post edytował droslaw 29.01.2012, 19:30:54 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 33 Dołączył: 10.05.2011 Skąd: Krak Ostrzeżenie: (0%) ![]() ![]() |
Chodzi mi o to, że właśnie ten sposób powoduje problemy. Przy podejściu podanym w dokumentacji zenda to znaczy w kontrolerze:
aplikacja zachowuje się zgodnie z moimi oczekiwaniami i przy odświerzeniu strony zobaczę kominikat 'message'. Ale kiedy stosuję helpera o którym pisałem w pierwszym poście, nie mam tego komunikatu. Dodałem Zend_Debug::dump w różne miejsca kodu w tym do Zend_Controller_Action_Helper_FlashMessenger. Okazuje się, że kiedy wywołuję:
po odświeżeniu strony (i dopiero po odświeżeniu) w przestrzeni nazw sesji w której FlashMessenger przechowuje komunikaty nie ma żadnych danych. Tak się dzieje zawsze kiedy dodam
poza kontrolerem (np. w Bootstrapie, a w kontrolerze mogę stosować go do woli); Poza tym kiedy dodam komunikat w konstruktorze FlashMessengera - layout wyświetla mi go tak jak tego chcę:
Zend: 1.11.11 PHP: 5.3.3-1ubuntu9.7 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 04:06 |