Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] sfGuard - dostosowanie szablonu logowania
Foxx
post
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:
  1. <?php
  2. if ($sf_request->hasErrors()){
  3.  include_partial('dodaj_ogloszenie/form_errors');
  4. }
  5. ?>

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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kamil Adryjanek
post
Post #2





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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 15:28