Jump to content

Hosting dHosting.pl - 10% rabat!

Sign in to follow this  
Ptasior

ROZWIĄZANY: Template Hook jako rozszerzenie formularza

Recommended Posts

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.

Share this post


Link to post
Share on other sites

O jakim 'hooku' piszesz? Zahaczający o skin czy o przesłaniającym klasę rejestracji?


intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Share this post


Link to post
Share on other sites

Tak, o tym 'zahaczającym', dokładniej przed if'em "hasCfields".

Share this post


Link to post
Share on other sites

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.

Edited by Ptasior

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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).

Edited by Ptasior

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.