![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam mały problem z pluginem sfGuard.
Nie mogę sobie poradzić ze zmianą w szablonie z formularzem logowania. Chciałbym, żeby zamiast domyślnych opisów pól (Username:, Password:) były moje własne (E-mail:, Hasło:). Wygląda mi na to, że te opisy są generowane automatycznie z nazw pól i nie znam na tyle architektury sfGuard żeby to obejść. Bedę wdzięczny za pomoc. --------------------- Ok, udało mi rozwiązać problem opisów pól ale nie potrafię sobie poradzić z wyświetlaniem komunikatów. SfGuard domyślnie wyświetla swoje komunikaty nad polem formularza, którego błąd dotyczy. Chciałbym w ogóle usunąć stamtąd komunikaty i wyświetlić je w innym miejscu tak jak w pozostałych częściach strony. A w pozostałych częściach strony robię tak:
No i nie mogę znaleźć w plikach sfGuard zrozumiałego dla mnie templatu, w którym byłoby coś analogicznego, więc rozumiem, że odbywa się to jakoś inaczej. A więc: 1. Jak przestać wyświetlać komunikaty sfGuarda nad polami formularza 2. Jak dostać się do tych komunikatów w innej części strony Z góry dzięki za podpowiedzi. Ten post edytował Foxx 18.04.2009, 13:42:13 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 6 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi Ci o komunikaty bledow walidacji w stylu 'Login i haslo sa niepoprawne' ? Jesli tak to w sf_sandbox\lib\form\doctrine (jak uzywasz propel to w sf_sandbox\lib\form) tworzysz plik sfGuardFormSignin.class.php o np. takiej zawartosci:
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Tak, o to mi chodziło w pierwszej wersji posta, ale doszedłem do tego rozwiązania i pojawił się drugi problem, który dopisałem w moim poście: komunikaty są domyślnie wyświetlane nad polami input logowania. Czyli jeżeli mam pole login i hasło i nie wpiszę nic to bezpośrednio nad polem login pojawia się komunikat "nie wpisano loginu" a nad polem hasło "nie wpisano hasła".
Ja natomiast chciałbym, żeby te komunikaty się nie wyświetlały tam ponieważ to sprawia że szablon mi się rozjeżdża, chciałbym po pierwsze wyłączyć to wyświetlanie i wyświetlić je w innym miejscu szablonu, na mój sposób, z moimi stylami. Wiem oczywiście o stworzeniu własnego szablonu signinSuccess, który napisze domyślny szablon sfGuarda, ale sam formularz, jego pola, są w tym szablonie wyświetlane po prostu za pomocą <?php echo $form ?> i nie mogę nigdzie znaleźć zawartości HTML tego $form. Czyli: jak wyłączyć domyślne wyświetlanie błędów i jak dobrać się do nich w szablonie signinSuccess analogicznie jak to robię z własnymi formularzami, czyli:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 3 Dołączył: 2.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wszystko możesz dowolnie modyfikować w szablonach. Jeśli chcesz mieć dostęp do każdego błędu z osobna, będziesz musiał zrezygnować ze standardowego wyświetlania przez echo $form. Wtedy możesz sobie to poukładać na przykład tak:
Kod <?php if ($form->hasErrors()): ?> <?php echo $form->renderGlobalErrors() ?> <?php foreach($form as $field): ?> <?php echo $field->renderError(); ?> <?php endforeach; ?> <?php endif; ?> Później ustawiasz labele i inputy poprzez $form['pole']->renderLabel() i $form['pole']->render() w odpowiednim formatowaniu. Możesz też spróbować ustawić wszystkie waliadtory jak globalne, ale to może się nie udać - w każdym bądź razie nie miałem okazji przetestować tego rozwiązania. -------------------- Programista PHP / Python
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, dodam jeszcze że rozwiązanie tych wszystkich problemów znajduje się tu: http://www.symfony-project.org/forms/1_1/en/ i właśnie zabieram się do lektury. Pozdrawiam.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 15:17 |