![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 6 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
W Symfony po zainstalowaniu wtyczki sfGuardAuth standardowy formularz logowania wygląda tak:
http://img514.imageshack.us/my.php?image=beztytuut.jpg A ja chciałbym go zmienić - polskie napisy itp. oraz przy okazji po zalogowaniu zrobić przekierowanie na daną stronę, bo aktualnie dziwnie to u mnie działa. Szczątkowy opis jak to zrobić znalazłem tutaj: http://www.symfony-project.org/plugins/sfG...b=plugin_readme I mam narazie: action.class.php:
signinSuccess.php:
LogowanieForm.class.php:
Narazie chyba ok jest wszystko ? W jaki sposób mam w symfony zweryfikować czy login i hasło są poprawne jak te w bazie danych ? Ten post edytował nieraczek 2.03.2009, 18:07:13 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 6 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Przepisałem mniej więcej to co jest w BasesfGuardAuthActions.class.php i za każdym razem mam komunikat o niepoprawnym loginie i haśle:
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem po co tworzysz sam, cały formularz od nowa.
Wystarczyło dziedziczyć po tym z pluginu (sfGuardFormSignin). Jeśli jednak nie chcesz z tego korzystać, to i tak polecam zajrzeć do tej klasy i dowiesz się jak sprawdzać poprawność loginu i hasła. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 6 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
No ja w gruncie rzeczy też nie wiem, dobrze, że mnie uświadomiłeś.
![]() Więc zgodnie z Twoją radą zmodyfikowałem pliki (swoją drogą za dużo narobili tych katalogów - wystarczy spojrzeć na długość poniższy ścieżek dostępu do plików): C:\Program Files\WebServ\httpd\sf_sandbox\plugins\sfDoctrineGuardPlugin\modules\sfGuardAuth\templates\signinSuccess.php:
oraz C:\Program Files\WebServ\httpd\sf_sandbox\plugins\sfDoctrineGuardPlugin\lib\form\doctrine\sfGuardFormSignin.class:
Dobrze to zrobiłem, bo mi działa, ale to że mi działa to nie znaczy, że dobrze ? Metoda public function configure() jest także w klasie BasesfGuardFormSignin i definiuje formularz w języku angielskim więc jak rozumiem te metody są wirtualne tak jak np. w języku java i pisząc metodę w klasie pochodnej sfGuardFormSignin przykryłem tę z klasy podstawowej tak jak w c++ czy java ? Żeby potem nie było problemów..... I jak rozumiem przy dodawaniu nowych tabel w bazie danych powyższe pliki nie zostaną nadpisane ? Tylko te z przedrostkiem 'Base' ewentualnie zostaną nadpisane ? Ten post edytował nieraczek 1.03.2009, 14:34:53 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Pliki z pluginu nie powinny być zmieniane, powinieneś to robić tylko w swojej aplikacji. Dlatego napisałem, żebyś dziedziczył po tym formularzu, a nie go edytował. To samo tyczy się szablonów i akcji.
Poza tym w ogóle tego nie rozumiem dlaczego po raz kolejny tworzysz widżety i walidatory skoro są już one tworzone "w klasie wyżej". Domyślam się, że masz problemy z oo w php, doucz się. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 6 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
No to skopiowałem do sf_sandbox\lib\form\doctrine ten plik sfGuardFormSignin.class.php z zawartością dokładnie taką samą jak w moim poprzednim poście czyli:
a plik sfGuardFormSignin.class.php z sf_sandbox\plugins\sfDoctrineGuardPlugin\lib\form\doctrine przywróciłem do poprzedniego stanu czyli:
Ale jesli nie można by było modyfikowac tych plików w folderze plugina to po co by tworzyli plik sfGuardFormSignin.class.php w sf_sandbox\plugins\sfDoctrineGuardPlugin\lib\form\doctrine bez żadnych metod ? Przecież ten plik dziedziczący po BasesfGuardFormSignin bez żadnych metod sam skłania do napisania w nim metody gdy chcemy zmodyfikować formularz logowania. Ale może to co radzisz sprawia, że jest bardziej przejrzyście ![]() Dlaczego tworze widgety i walidatory ? Bo chcę mieć polskie nazwy w stylu: 'Twój login', 'Twoje hasło', 'Nie wpisano loginu', 'Login lub hasło są niepoprawne ...' itd. Co w tym złego ? Moja metoda configure() z klasy pochodnej przysłania tę z klasy podstawowej - tak się robi w javie czy c++, w php nie ? Przywróciłem też plik: C:\Program Files\WebServ\httpd\sf_sandbox\plugins\sfDoctrineGuardPlugin\modules\sfGuardAuth\templates\signinSuccess.php do poprzedniego stanu, a w httpd\sf_sandbox\apps\frontend\modules utworzyłem katalog sfGuardAuth/templates i w nim plik signinSuccess z wyświetlaniem formularza:
Prosiłbym o wyjaśnienie jeśli można czemu źle robie tworząc na nowo widgety i walidatory i czy teraz zrobiłem wszystko ok ? ![]() Ten post edytował nieraczek 1.03.2009, 21:01:04 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Jeśli chodzi o plik: sf_sandbox\plugins\sfDoctrineGuardPlugin\lib\form\doctrine\BasesfGuardFormSignin.class.php
To zawiera wszystkie wymagane metody, natomiast w pliku sf_sandbox\plugins\sfDoctrineGuardPlugin\lib\form\doctrine\sfGuardFormSignin.class.php jest klasa, która jest wykorzystywana domyślnie jest ona potrzebna bo nie zawsze ktoś chce zmieniać działanie tego formularza. W php przesłania się metody, nie ma żadnych problemów. Pytanie po co to robisz zadałbym nawet jak pisałbyś w javie czy c++. Metoda z klasy wyżej już zrobiła większość roboty, po co się wysilać ![]()
Tak jest chyba prościej. Można to też zrobić korzystając z i18n, wtedy już nie musisz edytować formualrza. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 6 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
parent::configure(); - no tak, wielkie dzięki
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 12:24 |