Hi Dani,
dein Betrefff ist etwas konfus :-).
Zu deiner Frage: Ein Modul ist mir nicht bekannt aber du kannst das mit dem Form-Hook "processFormData" lösen.
PHP-Code:
$GLOBALS['TL_HOOKS']['processFormData'][] = array('\Guave\Example\Classes\Hooks', 'sendDataToExternUrl');
PHP-Code:
<?php
namespace Guave\Example\Classes;
class Hooks {
/**
* @param array $arrSubmitted
* @param array $arrData
* @param array $arrFiles
* @param array $arrLabels
* @param \Form $from
*/
public function sendDataToExternUrl($arrSubmitted, $arrData, $arrFiles, $arrLabels, $form)
{
//prüfen ob es deine Form mit dem Alias extern_form ist?
if($form->alias != 'extern_form') {
return;
}
//Daten per CURL an externe url senden
$externUrl = 'http://example.com';
$this->post($arrSubmitted, $externUrl);
//nun auf die seite Weiterleiten die in der Form hinterlegt wurde
if ($form->jumpTo)
{
$page = \PageModel::findOneBy('id', $form->jumpTo);
$redirect = \Controller::generateFrontendUrl($page->row());
\Controller::redirect(ampersand($redirect));
} else {
\Controller::redirect(ampersand(\Environment::get('base')));
}
}
/**
* @param array $fields
* @param string $url
*/
protected function post($fields, $url)
{
$ch = curl_init();
$postvars = '';
foreach ($fields as $key => $value) {
$postvars .= $key . "=" . urlencode($value) . "&";
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1); //0 for a get request
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
}
Habe den Code schnell zusammenkopiert, ist nicht getestet, sollte aber so gehen.
lg
Gebi
Lesezeichen