![]() |
![]() ![]() |
![]() |
![]()
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: 11 Pomógł: 3 Dołączył: 28.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zrób tak:
Utwórz helper Message i dodaj go do listy helperów.:
Wywołuj go w pliku widoku. Ja np. mam go w layoucie Tworzysz gdzieś w parencie danej klasy, albo w samej klasie:
i zaraz przed wywołaniem redirect (helperem redirector):
Samo redirect też powinno działać. Pozdrawiam. Ten post edytował nid3 29.01.2012, 14:27:09 |
|
|
![]()
Post
#3
|
|
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 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Controller:
Helper:
I działa bez problemu (IMG:style_emoticons/default/smile.gif) Pamiętaj że dopiero po podwójnym odświeżeniu (dodanie wiadomość + 1 krok) lub odświeżeniu i przekierowaniu getMessages zwróci Tobie wiadomości. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 33 Dołączył: 10.05.2011 Skąd: Krak Ostrzeżenie: (0%) ![]() ![]() |
Dobra po kłopocie. Problem leżał w nieistniejącym pliku css (IMG:style_emoticons/default/snitch.gif) . Przeglądarka wysyłała żądanie próbując pobrać style, apache nie znajdował pliku i przekierowywał żądanie do pliku index.php. W tym czasie były usuwane wiadomości.
Dzięki koledzy za fatygę. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 20:28 |