syntaxe POO (visibilite) et maj indentation
[mw_sourceml] / app / controllers / forms / sourceml.php
1 <?php
2
3   class mw_forms_sourceml extends mw_controller{
4
5     public $forms_contact_mod;
6
7     public function validate(){
8       $env = $this->env();
9       if($this->forms_contact_mod = $env->get_controller("forms/contact")){
10         return $this->forms_contact_mod->validate();
11       }
12       return "impossible de trouver le controlleur forms/contact";
13     }
14
15     public function contact_author(){
16       $env = $this->env();
17       if(file_exists($env->path("mw_dir")."libs/ptitcaptcha.php")) require_once $env->path("mw_dir")."libs/ptitcaptcha.php";
18       $data = $env->data();
19       if(($status = $data->source_status()) !== false){
20         foreach($status as $id_source_status => $source_status){
21           if($source_status["nom"] == "album") $album_status_id = $id_source_status;
22           if(isset($album_status_id)) break;
23         }
24         if(isset($album_status_id)){
25           if($groupe = $data->groupe($_GET[$env->param("id")])){
26             if($groupe["contact_form"] && $groupe["email"]){
27               $env->set_out("groupe", $groupe);
28               $select = array("status" => $album_status_id);
29               $select["id_groupe"] = $groupe["id"];
30               if(($albums = $data->sources($select)) !== false){
31                 $env->set_out("albums", $albums);
32                 if($_POST){
33                   if(
34                     $this->send(
35                       $env,
36                       $_POST["email"],
37                       "[".$env->config("site_name")." - ".$groupe["nom"]."] nouveau message",
38                       $_POST["message"],
39                       $groupe["email"],
40                       $groupe["captcha"]
41                     )
42                   ){
43                     $env->redirect(
44                       $env->url("sources/groupe/view", array("id" => $_GET[$env->param("id")])),
45                       "Le message a &eacute;t&eacute; envoy&eacute;"
46                     );
47                   }
48                 }
49               }
50               else $env->erreur("impossible de lire la liste des albums");
51             }
52             else{
53               $env->run("sources/groupe/view", array("get" => array("id" => $groupe["id"])));
54               return;
55             }
56           }
57           else $env->erreur("Impossible de lire les informations du groupe");
58         }
59         else $env->erreur("Type de source inconnu: album");
60       }
61       else $env->erreur("Impossible de lire la liste des status de source");
62     }
63
64     public function send(&$env, $from, $titre, $message, $dest, $captcha){
65       $env->set_out("ENVOYE", false);
66       if($captcha && !class_exists("PtitCaptchaHelper")){
67         $env->erreur("fichier du captcha introuvable");
68         return false;
69       }
70       if(!$captcha || PtitCaptchaHelper::checkCaptcha()){
71         if($from){
72           if($dest){
73             if(
74               mail(
75                 $dest,
76                 $titre,
77                 $message,
78                  "From: ".$from."\r\n"
79                 ."Reply-To: ".$from."\r\n"
80               )
81             ){
82               $env->set_out("ENVOYE", true);
83               return true;
84             }
85             else $env->erreur("Erreur &agrave; l'envoi du mail");
86           }
87           else $env->erreur("Impossible de trouver l'email du destinataire");
88         }
89         else $env->message("merci de pr&eacute;ciser un email");
90       }
91       else $env->message("anti-spam incorrect");
92       return false;
93     }
94
95   }