3 class mw_users_albums extends mw_controller
14 if(($this->status = $data->source_status()) !== false)
15 { foreach($this->status as $id_source_status => $source_status)
16 { if($source_status["nom"] == "album")
17 { $this->album_status_id = $id_source_status;
21 if(isset($this->album_status_id))
22 { if($this->user = $env->user())
23 { if(($this->groupes = $data->groupes($this->user["id"])) !== false)
24 { $env->set_out("groupes", $this->groupes);
25 if($env->etat("action") == "edit" || $env->etat("action") == "del")
26 { if(($this->album = $data->source($_GET[$env->param("id")], true)) !== false && $this->album)
29 else return "Impossible de lire les informations de l'album";
31 if($env->etat("action") == "add" || $env->etat("action") == "edit")
32 { if(($this->licences = $data->licences()) !== false)
33 { $env->set_out("licences", $this->licences);
35 else return "Impossible de lire la liste des licences";
38 else return "Impossible de lire la liste des groupes";
40 else return "Vous devez être identifier pour accéder à cette page";
42 else return "Type de source inconnu: album";
44 else return "Impossible de lire la liste des status de source";
52 $select["status"] = $this->album_status_id;
53 $select["id_user"] = $this->user["id"];
54 $select["order_by"] = "ordre";
55 $select["start"] = isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0;
56 if(isset($_GET[$env->param("groupe")]) && $_GET[$env->param("groupe")]) $select["id_groupe"] = $_GET[$env->param("groupe")];
57 if(($albums = $data->sources($select)) !== false){
58 foreach($albums["list"] as $id_album => $album)
59 { $albums["list"][$id_album]["permissions"] = $data->source_permissions($albums["list"][$id_album], $this->user["id"]);
63 foreach($albums["list"] as $id_album => $album)
64 { if(isset($_POST["ordre_".$id_album]))
65 { if($data->set_source_info($id_album, "ordre", $_POST["ordre_".$id_album]) === false)
72 { $get_params = array();
73 if(isset($_GET[$env->param("groupe")]) && $_GET[$env->param("groupe")]) $get_params["groupe"] = $_GET[$env->param("groupe")];
75 ( $env->url("users/albums", $get_params),
76 "l'ordre des albums a été enregistré"
79 else $env->erreur("Impossible d'enregistrer l'ordre des albums");
81 $env->set_out("albums", $albums);
83 else $env->erreur("Impossible de lire la liste des albums");
89 if($data->check_user_uploads_dir())
90 { $web_path = $env->path("web");
91 $upload_dir = $env->path("content")."uploads/".$this->user["id"];
92 $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$upload_dir;
93 $this->album = $data->empty_source();
95 ( "date_inscription" => date("Y")."-".date("m")."-".date("d"),
99 { if(($groupe = $data->groupe($_POST["id_groupe"])) !== false)
100 { $groupe["id_groupe_status"] = $data->id_groupe_status_admin();
101 $env->set_out("groupe", $groupe);
102 $this->album["groupes"] = array($groupe["id"] => $groupe);
103 $this->album["titre"] = trim($_POST["titre"]);
104 $this->album["licence"] = array
105 ( "id" => $_POST["licence"]
107 $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"];
108 $source_infos["description"] = $_POST["description"];
109 foreach($_POST as $post_key => $post_value)
110 { if(substr($post_key, 0, 13) == "document_nom_")
111 { if($id_document = substr($post_key, 13))
112 { $this->album["documents"][$id_document] = array
113 ( "nom" => $_POST["document_nom_".$id_document],
114 "url" => $_POST["document_url_".$id_document]
119 if($this->album["titre"])
120 { if(($image = $data->upload("image", $upload_dir)) !== false)
121 { if($image) $source_infos["image"] = $this->user["id"]."/".$image;
124 ( $this->album["groupes"],
125 $this->album["titre"],
126 $this->album_status_id,
127 $this->album["licence"]["id"],
128 $this->album["documents"],
129 $this->album["reference"],
130 $this->album["derivations"],
134 ( $env->url("users/albums"),
135 "l'album a été ajouté"
137 else $env->erreur("Impossible d'ajouter l'album");
139 else $env->erreur("Impossible d'uploader l'image");
141 else $env->message("merci de préciser un titre pour l'album");
143 else $env->erreur("Impossible de lire les informations du groupe");
145 foreach($source_infos as $info_key => $info_value) $this->album[$info_key] = $info_value;
146 $env->set_out("album", $this->album);
148 else $env->erreur("Impossible de creer le repertoire utilisateur");
153 $data = $env->data();
154 $this->album["permissions"] = $data->source_permissions($this->album, $this->user["id"]);
155 if($this->album["permissions"]["editeur"])
156 { if($data->check_user_uploads_dir())
157 { $web_path = $env->path("web");
158 $upload_dir = $env->path("content")."uploads/".$this->user["id"];
159 $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$upload_dir;
160 $source_infos = array
161 ( "date_inscription" => $this->album["date_inscription"],
162 "ordre" => $this->album["ordre"],
163 "date_creation" => $this->album["date_creation"],
164 "description" => $this->album["description"],
165 "image" => isset($this->album["image"]) ? $this->album["image"] : null
167 $env->set_out("groupe", $data->get_admin_groupe($this->album["groupes"]));
170 { if(($groupe = $data->groupe($_POST["id_groupe"])) !== false)
171 { $env->set_out("groupe", $groupe);
172 $groupe["id_groupe_status"] = $data->id_groupe_status_admin();
173 $this->album["groupes"] = array($groupe["id"] => $groupe);
174 $this->album["titre"] = trim($_POST["titre"]);
175 $this->album["licence"] = array
176 ( "id" => $_POST["licence"]
178 $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"];
179 $source_infos["description"] = $_POST["description"];
180 $this->album["documents"] = array();
181 foreach($_POST as $post_key => $post_value)
182 { if(substr($post_key, 0, 13) == "document_nom_")
183 { if($id_document = substr($post_key, 13))
184 { $this->album["documents"][$id_document] = array
185 ( "nom" => $_POST["document_nom_".$id_document],
186 "url" => $_POST["document_url_".$id_document]
191 if($this->album["titre"])
192 { if(isset($_POST["del_image"]))
193 { if($this->album["image"])
194 { if(@unlink($env->path("content")."uploads/".$this->album["image"])) $this->album["image"] = "";
196 { $this->album["image"] = false;
197 $env->erreur("Impossible d'effacer l'image");
200 else $this->album["image"] = "";
203 { if(($up_image = $data->upload("image", $upload_dir)) !== false)
204 { if($up_image) $this->album["image"] = $this->user["id"]."/".$up_image;
207 { $env->erreur("Impossible d'uploader l'image");
211 if($this->album["image"] !== false)
212 { if($this->album["image"]) $source_infos["image"] = $this->album["image"];
215 ( $this->album["id"],
216 $this->album["groupes"],
217 $this->album["titre"],
218 $this->album_status_id,
219 $this->album["licence"]["id"],
220 $this->album["documents"],
221 $this->album["reference"],
222 $this->album["derivations"],
226 ( $env->url("users/albums/edit", array("id" => $this->album["id"])),
227 "l'album a été modifié"
229 else $env->erreur("Impossible de modifier l'album");
231 else $env->erreur("Impossible d'uploader l'image");
233 else $env->message("merci de préciser un titre pour l'album");
235 else $env->erreur("Impossible de lire les informations du groupe");
237 $env->set_out("album", $this->album);
239 else $env->erreur("Impossible de creer le repertoire utilisateur");
241 else $env->erreur("Vous n'avez pas la permission de modifier cet album");
246 $data = $env->data();
247 $this->album["permissions"] = $data->source_permissions($this->album, $this->user["id"]);
248 if($this->album["permissions"]["admin"])
249 { if($data->del_source($this->album["id"]))
251 ( $env->url("users/albums"),
252 "l'album a été supprimé"
255 else $env->erreur("Impossible de supprimer l'album");
257 else $env->erreur("Vous n'avez pas la permission de supprimer cet album");