Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

ROZWIĄZANY: Template Hook jako rozszerzenie formularza


Rekomendowane odpowiedzi

Ostatecznie stwierdziłem, że rozszerzenie formularza rejestracji będzie najłatwiej osiągalne za pomocą hook'a. Wszystko ładnie pięknie do momentu kiedy muszę walidować pola, które dodałem.

Niby można to obsłużyć bezpośrednio w klasie należącej do rozszerzenia, aczkolwiek nie mam pojęcia jak można wtedy zwracać błędy(w głównym pliku modułu rejestracji tabela z błędami to $form_errors), tzn. mimo iż błąd wystąpił i powinien zostać wyświetlony to formularz ma to gdzieś i przechodzi do kroku 2 - 'potwierdzenia'.

I tu właśnie oczekuję pomocy, a mianowicie - w jaki sposób mogę obsłużyć dodaną część formularza oraz jak zsynchronizować moje błędy z głównymi błędami rejestracji.

Z góry dziękuje.

Odnośnik do komentarza
Udostępnij na innych stronach

Czytając jeszcze temat na oficjalnym forum invisionize, doszukałem się informacji o tych action overloader'ach i jeśli dobrze rozumiem, to aby to rozszerzenie formularza działało poprawnie to muszę użyć dwóch hook'ów, tak? Jednego template hook'a oraz action overloader'a aby przeprowadzić walidacje formularza.

@edit: ups.

Edytowane przez Ptasior
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

I co z tym chcesz zrobić? Jak walidować cokolwiek jak to tylko dodanie szablonu do bitu skina?

Walidacja tylko przez odpowiednie przesłonięcie klasy rejestracji.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Właśnie to napisałem. Aktualnie mam coś takiego:

<?php
class tpRegisterPaymentOverloader extends public_core_global_register
{
public function registerProcessForm()
{
 $this->registry->class_localization->loadLanguageFile( array( 'public_d3elite' ), 'd3elite' );

 /* Mod is enabled? */
 if ( $this->settings['tp_regp_enable'] == 0 )
 {
	 return;
 }

 if( strlen($this->request['serviceCode']) < 8 )
 {
	 $form_errors['code'] = $this->lang->words['tp_regp_error_code_minlength'];
 }
 else
 {
	 $form_errors['code'] = $this->lang->words['tp_regp_error_code_wrong'];
 }


 parent::registerProcessForm();
}
}

lecz nadal $form_errors nie zawiera błędu(sprawdzam przy użyciu var_dump w register.php).

Edytowane przez Ptasior
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Hm, ale to Cię nie powinno dziwić. :) To zmienna lokalna, jak ma być przekazana wyżej do klasy nadrzędnej? Inaczej to trzeba zrobić. Ja powiem Ci tak - ja zawsze przesłaniam całą tę klasę jej zawartością i w tym kodzie robię odpowiednie zmiany. Ma to pewien minus - działa tylko na określonej wersji forum (zwykle najnowszej), ale nastręcza najmniej problemów. :)

Może można to inaczej zrobić, np. miast tej metody wyżej przesłoń tę:

    public function registerForm( $form_errors=array() )
   {

Gdzie jak widać błędy już są przekazywane, więc nie powinieneś mieć problemów.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

No wlasnie, wczoraj wpadlem na pomysl przeslonienia calej metody i w sumie siwetnie to dziala, oczywiscie z tym minusem, ze wszystko zapewne posypie sie po update, aczkolwiek nie jest to jakas straszna przeszkoda. Jedyne co mnie zastanawia to to, ze w template hook'u musze przeprowadzic walidacje aby wysiwetlac bledy w formularzu, a w overloadzie przeprowadzam walidacje, aby blokowac wykonanie sie rejestracji. Dzieki za pomoc, temat mozna zamknac.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Problem ROZWIĄZANY. Jeśli są jakiekolwiek wątpliwości, pytania proszę o wysłanie wiadomości do jednego z członków ekipy zarządzającej.

Wszelkie uzasadnione reklamacje/pretensje/sugestie/rady przyjmuje ekipa forum.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.