PDA

Zobacz pełną wersję : cUrl po rejestracji użytkownika



grezliq
08-04-2014, 14:04
Cześć

Chciałbym uzyskać pomoc z następującą rzeczą. Po rejestracji użytkownika w joomli, jego dane są automatycznie wysyłane poprzez cUrl do innego serwisu. Skrypt wygląda następująco:



$url = "http://xxxx";

$data = array (
userId => xxxx, // authentication userId
loginToken => 'xxxxx', // authentication loginToken
'customerType' => 'Person',
'firstName' => 'Łukasz',
'lastName' => 'Testowy',
'emails[0].email' => 'email@exaple.com',
'phones[0].phoneNumber' => '0123456789',
'documentNo' => 'ABC1234567',
'address.city' => 'Warsaw',
'address.postalCode' => '01-001',
'address.street' => 'Sobieskiego',
'note' => 'To jest informacja o testowym kliencie'
);

$data_string = http_build_query($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);



Ogólnie skrypt działa bardzo dobrze, po wywołaniu tego pliku dane są wysyłane do innego serwisu, wszystko działa pięknie. Ale chodzi o to aby tak go zmodyfikować żeby zamiast danych Łukasz, Testowy itd pojawiły się dane użytkownika który się rejestruje. Jestem średni w php więc byłbym wdzięczny gdyby ktoś wytłumaczył mi co i gdzie mam dopisać. Z tego co się orientuję chyba trzeba wykorzystać tutaj funkcję POST?

Dziękuję i pozdrawiam.

KES
08-04-2014, 14:38
Stwórz plugin typu user: przykład z dokumentacji (http://docs.joomla.org/Creating_a_profile_plugin)
Użyj metody onUserAfterSave i tylko wtedy kiedy użytkownik jest nowy, tam wklej Twój kod i podmień zmienne.

grezliq
08-04-2014, 15:07
Bardzo Ci dziękuję jednak nie jestem jeszcze na tym etapie w php. Czy byłaby możliwość udzielenia jakiś bliższych wskazówek? Może dokładnie w którym miejscu mam wkleić mój kod itd?

Dziękuję i pozdrawiam.

grezliq
08-04-2014, 16:34
dodałem mój kod do pluginu "user" bez pobierania danych użytkownika żeby sprawdzić czy w ogóle się wykonuje i działa ale nie tak jak chciałem. Chodzi o to zeby skrypt wykonywał się w momencie jak użytkownik sam sie rejestruje, a nie wtedy kiedy ja to robię z poziomu admina.

KES
08-04-2014, 16:46
Poczytaj co to są pluginy do Joomla! jak działają. Sprawdź linka do dokumentacji którego Ci podałem.
Raczej nikt za Ciebie kodu nie napisze bo to trochę pracy jest.

grezliq
08-04-2014, 16:50
Własnie udało mi się to zrobić tak żeby działało. Dopisałem skrypt do com_users/controllers/registration.php i po rejestracji użytkownika wysyła przykładowe dane poprzez cUrl. Pytanie - jak zrobić aby pobierał dane użytkownika który właśnie się zarejestrował i zastępował nimi dane przykładowe w skrypcie?

KES
09-04-2014, 09:19
Dobrze że Ci się udało lecz zastanawiałeś się co się stanie po aktualizacji Joomla! z Twoim kodem?... Zostanie nadpisany.
Co do pobierania danych poczytaj w dokumentacji PHP o var_dump i print_r. Wyświetl zmienne które są w kodzie i zobaczysz która zmienna trzyma informacji o użytkowniku.
Dalej twierdzę że powinieneś napisać plugin.