/** * Generate the widget and return it as string * @return string */ public function generate() { if (TL_MODE == 'BE') { $objTemplate = new \BackendTemplate('be_wildcard'); $objTemplate->wildcard = '### reCaptcha ###'; return $objTemplate->parse(); } $config = sprintf("\n<script type=\"text/javascript\">\n var RecaptchaOptions = { theme : '%s', lang : '%s', tabindex : %u, custom_theme_widget: 'recaptcha_widget' };\n</script>\n", $this->theme, $GLOBALS['TL_LANGUAGE'], $this->tabindex > 0 ? $this->tabindex : 0); return $config . $this->reCaptcha->html() . $this->addSubmit(); }
public function executeIndex(\core\HTTPRequest $request) { $captcha = \lib\Captcha::build(); $this->page()->addVar('captcha', $captcha); if ($request->postExists('message-sender-name')) { $messageData = array('senderName' => trim($request->postData('message-sender-name')), 'senderEmail' => $request->postData('message-sender-email'), 'subject' => trim($request->postData('message-subject')), 'content' => trim($request->postData('message-content'))); $this->page()->addVar('message', $messageData); try { $message = new \lib\entities\ContactMessage($messageData); } catch (\InvalidArgumentException $e) { $this->page()->addVar('error', $e->getMessage()); return; } $captchaId = (int) $request->postData('captcha-id'); $captchaValue = (int) $request->postData('captcha-value'); $captcha = \lib\Captcha::get($captchaId); if (empty($captcha)) { $this->page()->addVar('error', 'Your session has expired. Please try again'); return; } if (!$captcha->check($captchaValue)) { $this->page()->addVar('error', 'Invalid captcha'); return; } $contactConfig = $this->config->read(); $messageDest = $contactConfig['email']; $messageSubject = $contactConfig['subjectPrepend'] . ' ' . $message['subject']; $messageContent = 'Nom : ' . $message['senderName'] . ' <' . $message['senderEmail'] . '>' . "\n"; $messageContent .= 'Sujet : ' . $message['subject'] . "\n"; $messageContent .= 'Message :' . "\n" . $message['content']; $messageHeaders = 'From: ' . $message['senderEmail'] . "\r\n" . 'Reply-To: ' . $message['senderEmail'] . "\r\n" . 'X-Mailer: PHP/' . phpversion(); if (mail($messageDest, $messageSubject, $messageContent, $messageHeaders) !== false) { $this->page()->addVar('messageSent?', true); } else { $this->page()->addVar('error', 'Cannot send message : server error'); } } $this->page()->addVar('title', 'Contact'); }