syntaxe POO (visibilite) et maj indentation
[mw_sourceml] / app / controllers / users / groupes.php
1 <?php
2
3   class mw_users_groupes extends mw_controller{
4
5     public $groupe;
6     public $user;
7
8     public function validate(){
9       $env = $this->env();
10       $data = $env->data();
11       if($this->user = $env->user()){
12         if($env->etat("action") == "edit" || $env->etat("action") == "del"){
13           if(
14             (
15               $this->groupe = $data->groupe(
16                 $_GET[$env->param("id")]
17               )
18             ) !== false
19             && $this->groupe
20           ){
21             if($this->groupe["id_user"] == $this->user["id"]){
22               return true;
23             }
24             else return "Vous n'est pas autoris&eacute; &agrave; modifier ce groupe";
25           }
26           else return "Impossible de lire les informations du groupe";
27         }
28         else return true;
29       }
30       return "Vous devez &ecirc;tre identifier pour acc&eacute;der &agrave; cette page";
31     }
32
33     public function index(){
34       $env = $this->env();
35       $data = $env->data();
36       if(
37         $env->set_out(
38           "groupes",
39           $data->groupes(
40             $this->user["id"],
41             isset($_GET[$env->param("start")]) ? $_GET[$env->param("start")] : 0
42           )
43         ) !== false
44       ){
45       }
46       else $env->erreur("Impossible de lire la liste des groupes");
47     }
48
49     public function add(){
50       $env = $this->env();
51       $data = $env->data();
52       if($data->check_user_uploads_dir()){
53         $web_path = $env->path("web");
54         $upload_dir = $env->path("content")."uploads/".$this->user["id"];
55         $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$upload_dir;
56         if($_POST){
57           $env->set_out("groupe", $_POST);
58           if(($image = $data->upload("image", $upload_dir)) !== false){
59             if(trim($_POST["nom"])){
60               if(($exists = $data->groupe_exists($_POST["nom"])) !== false){
61                 if(!isset($_POST["contact_form"]) || trim($_POST["email"])){
62                   if($exists == 0){
63                     if(
64                       $data->add_groupe(
65                         $this->user["id"],
66                         $_POST["nom"],
67                         $image ? $this->user["id"]."/".$image : null,
68                         $_POST["description"],
69                         $_POST["email"],
70                         isset($_POST["contact_form"]) ? 1 : 0,
71                         isset($_POST["captcha"]) ? 1 : 0
72                       )
73                     ){
74                       $env->redirect(
75                         $env->url("users/groupes"),
76                         "le groupe a &eacute;t&eacute; ajout&eacute;"
77                       );
78                     }
79                     else $env->erreur("Impossible d'ajouter le groupe");
80                   }
81                   else $env->message("Un groupe avec ce nom existe d&eacute;j&agrave;");
82                 }
83                 else $env->message("merci de pr&eacute;ciser un email pour le formulaire de contact");
84               }
85               else $env->erreur("Impossible de savoir si le groupe existe d&eacute;j&agrave;");
86             }
87             else $env->message("merci de pr&eacute;ciser un nom pour le groupe");
88           }
89           else $env->erreur("Impossible d'uploader l'image");
90         }
91       }
92       else $env->erreur("Impossible de creer le repertoire utilisateur");
93     }
94
95     public function edit(){
96       $env = $this->env();
97       $data = $env->data();
98       if($data->check_user_uploads_dir()){
99         $web_path = $env->path("web");
100         $upload_dir = $env->path("content")."uploads/".$this->user["id"];
101         $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$upload_dir;
102         if($env->set_out("groupe", $this->groupe)){
103           $groupe = $env->out("groupe");
104           if($_POST){
105             $id = $groupe["id"];
106             $nom = $groupe["nom"];
107             $image = $groupe["image"];
108             $_POST["image"] = $image ? $_SESSION["upload_dir"]."/".$image : "";
109             $env->set_out("groupe", $_POST);
110             if(isset($_POST["del_image"])){
111               if($image){
112                 if(@unlink($env->path("content")."uploads/".$image)) $image = "";
113                 else{
114                   $image = false;
115                   $env->erreur("Impossible d'effacer l'image");
116                 }
117               }
118               else $image = "";
119             }
120             else{
121               if(($new_image = $data->upload("image", $upload_dir)) !== false){
122                 if($new_image) $image = $this->user["id"]."/".$new_image;
123               }
124               else $env->erreur("Impossible d'uploader l'image");
125             }
126             if($image !== false){
127               if(trim($_POST["nom"])){
128                 if(($exists = $data->groupe_exists($_POST["nom"], $this->groupe["id"])) !== false){
129                   if(!$exists){
130                     if(!isset($_POST["contact_form"]) || trim($_POST["email"])){
131                       if(
132                         $data->set_groupe(
133                           $id,
134                           $_POST["nom"],
135                           $image,
136                           $_POST["description"],
137                           $_POST["email"],
138                           isset($_POST["contact_form"]) ? 1 : 0,
139                           isset($_POST["captcha"]) ? 1 : 0
140                         )
141                       ){
142                         $env->redirect(
143                           $env->url("users/groupes/edit", array("id" => $_GET[$env->param("id")])),
144                           "le groupe a &eacute;t&eacute; modifi&eacute;"
145                         );
146                       }
147                       else $env->erreur("Impossible de modifier le groupe");
148                     }
149                     else $env->message("merci de pr&eacute;ciser un email pour le formulaire de contact");
150                   }
151                   else $env->message("Un groupe avec ce nom existe d&eacute;j&agrave;");
152                 }
153                 else $env->erreur("Impossible de savoir si le groupe existe d&eacute;j&agrave;");
154               }
155               else $env->message("merci de pr&eacute;ciser un nom pour le groupe");
156             }
157           }
158           else{
159             $env->set_out("groupe", $groupe);
160           }
161         }
162         else $env->erreur("Impossible de lire les informations du groupe");
163       }
164       else $env->erreur("Impossible de creer le repertoire utilisateur");
165     }
166
167     public function del(){
168       $env = $this->env();
169       $data = $env->data();
170       if(($res = $data->del_groupe($this->groupe["id"])) !== false){
171         if($res === 1){
172           $env->redirect(
173             $env->url("users/groupes"),
174             "Ce groupe a des sources sur ce site, il n'a pas &eacute;t&eacute; supprim&eacute;.",
175             5
176           );
177         }
178         else{
179           $env->redirect(
180             $env->url("users/groupes"),
181             "le groupe a &eacute;t&eacute; supprim&eacute;"
182           );
183         }
184       }
185       else $env->erreur("Impossible de supprimer le groupe");
186     }
187
188   }