46fc01456a51b198ca79671ff4618ad394c650a4
[mw_sourceml] / app / controllers / forms / sourceml.php
1 <?php
2
3   class mw_forms_sourceml extends mw_controller{
4
5     var $forms_contact_mod;
6
7     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     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     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   }
96
97 ?>