Exemplo n.º 1
0
 /**
  * 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');
 }