reorganisation des dossiers
[mtweb] / mw / app / mods / forms / contact.php
diff --git a/mw/app/mods/forms/contact.php b/mw/app/mods/forms/contact.php
new file mode 100644 (file)
index 0000000..85e5838
--- /dev/null
@@ -0,0 +1,77 @@
+<?php
+
+  class mw_forms_contact extends mw_mod{
+
+    function index(&$env){
+      if($env->config("contact_form") && $env->config("email")){
+        if($env->config("captcha")){
+          if(file_exists($env->path("mw_dir")."libs/ptitcaptcha.php")){
+            require $env->path("mw_dir")."libs/ptitcaptcha.php";
+          }
+          else{
+            $env->erreur("fichier du captcha introuvable");
+            return;
+          }
+        }
+        $message = array(
+          "email" => "",
+          "message" => ""
+        );
+        if($_POST){
+          $message["email"] = $_POST["email"];
+          $message["message"] = $_POST["message"];
+          if(
+            $this->__send_form(
+              $env,
+              $message["email"],
+              "[".$env->config("site_name")."] nouveau message",
+              $message["message"],
+              $env->config("email"),
+              $env->config("captcha")
+            )
+          ){
+            $env->redirect(
+              $env->url("index"),
+              "Le message a &eacute;t&eacute; envoy&eacute;",
+              2
+            );
+          }
+        }
+        $env->set_out("message", $message);
+      }
+      else $env->run("index");
+    }
+
+    function __send_form(&$env, $from, $titre, $message, $dest, $captcha){
+      $env->set_out("ENVOYE", false);
+      if(!$captcha || PtitCaptchaHelper::checkCaptcha()){
+        if($from){
+          if($dest){
+            if(filter_var($from, FILTER_VALIDATE_EMAIL)){
+              if(
+                @mail(
+                  $dest,
+                  $titre,
+                  $message,
+                   "From: ".$from."\r\n"
+                  ."Reply-To: ".$from."\r\n"
+                )
+              ){
+                $env->set_out("ENVOYE", true);
+                return true;
+              }
+              else $env->erreur("Erreur &agrave; l'envoi du mail");
+            }
+            else $env->message("Votre email ne semble pas etre valide");
+          }
+          else $env->erreur("Impossible de trouver l'email du destinataire");
+        }
+        else $env->message("merci de pr&eacute;ciser un email");
+      }
+      else $env->message("anti-spam incorrect");
+      return false;
+    }
+
+  }
+
+?>
\ No newline at end of file