3 class mw_users_albums extends mw_controller{
13 if(($this->status = $data->source_status()) === false){
14 return "Impossible de lire la liste des status de source";
16 foreach($this->status as $id_source_status => $source_status){
17 if($source_status["nom"] == "album"){
18 $this->album_status_id = $id_source_status;
22 if(!isset($this->album_status_id)){
23 return "Type de source inconnu: album";
25 if(!($this->user = $env->user())){
26 return "Vous devez être identifié pour accéder à cette page";
34 if(($groupes = $data->groupes($this->user["id"])) === false){
35 $env->erreur("Impossible de lire la liste des groupes");
39 if(isset($_GET[$env->param("groupe")])){
40 $id_groupe = $_GET[$env->param("groupe")];
41 if(!isset($groupes["list"][$id_groupe])){
42 $env->erreur("Impossible de lire les informations du groupe");
47 "status" => $this->album_status_id,
48 "id_user" => $this->user["id"],
49 "order_by" => "ordre",
50 "start" => isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0
52 if($id_groupe) $select["id_groupe"] = $id_groupe;
53 if(($albums = $data->sources($select)) === false){
54 $env->erreur("impossible de lire la liste des albums");
57 foreach($albums["list"] as $id_album => $album){
58 $albums["list"][$id_album]["permissions"] = $data->source_permissions($album, $this->user["id"]);
61 foreach($albums["list"] as $id_album => $album){
62 if(isset($_POST["ordre_".$id_album])){
63 if($data->set_source_info($album["id"], "ordre", $_POST["ordre_".$id_album]) === false){
64 $env->erreur("Impossible d'enregistrer l'ordre des albums");
69 $get_params = array();
70 if($id_groupe) $get_params["groupe"] = $id_groupe;
72 $env->url("users/albums", $get_params),
73 "l'ordre des albums a été enregistré"
76 $env->set_out("groupes", $groupes);
77 $env->set_out("albums", $albums);
83 $album = $data->empty_source();
84 $source_infos = array(
85 "date_inscription" => date("Y-m-d"),
89 if(($groupes = $data->groupes($this->user["id"])) === false){
90 $env->erreur("Impossible de lire la liste des groupes");
93 if(($licences = $data->licences()) === false){
94 return "Impossible de lire la liste des licences";
96 if(!$data->check_user_uploads_dir()){
97 $env->erreur("Impossible de creer le repertoire utilisateur");
100 $web_path = $env->path("web");
101 $upload_dir = $env->path("content")."uploads/".$this->user["id"];
102 $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$env->path("content")."uploads/".$this->user["id"];
103 $users_sources_mod = $env->get_controller("users/sources");
105 if(!($groupe = $data->groupe($_POST["id_groupe"]))){
106 $env->erreur("Impossible de lire les informations du groupe");
109 $groupe["id_groupe_status"] = $data->id_groupe_status_admin();
110 $album["groupes"] = array($groupe["id"] => $groupe);
111 if(!($album["titre"] = trim($_POST["titre"]))){
112 $env->message("merci de préciser un titre pour l'album");
114 $album["licence"] = array(
115 "id" => $_POST["licence"]
117 $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"];
118 $source_infos["description"] = $_POST["description"];
119 foreach($_POST as $post_key => $post_value){
120 if(substr($post_key, 0, 13) == "document_nom_"){
121 if($id_document = substr($post_key, 13)){
122 $album["documents"][$id_document] = array(
123 "nom" => $_POST["document_nom_".$id_document],
124 "url" => $_POST["document_url_".$id_document]
129 if(!$env->messages()){
130 if(($image = $data->upload("image", $upload_dir)) === false){
131 $env->erreur("erreur lors de l'envoi de l'image. l'album n'a pas été ajouté");
134 if($image) $source_infos["image"] = $this->user["id"]."/".$image;
137 $id_source = $data->add_source(
140 $this->album_status_id,
141 $album["licence"]["id"],
144 $album["derivations"],
149 $env->erreur("Impossible d'ajouter l'album");
153 $env->url("users/albums/edit", array("id" => $id_source)),
154 "l'album a été ajouté"
158 $env->set_out("groupes", $groupes);
159 $env->set_out("licences", $licences);
160 $env->set_out("album", $album);
161 $env->set_out("source_infos", $source_infos);
162 $env->set_out("groupe", $groupe);
167 $data = $env->data();
168 if(($groupes = $data->groupes($this->user["id"])) === false){
169 $env->erreur("Impossible de lire la liste des groupes");
172 if(($licences = $data->licences()) === false){
173 $env->erreur("Impossible de lire la liste des licences");
176 if(($sources_access = $data->sources_access()) === false){
177 $env->erreur("Impossible de lire les types d'access");
180 if(!($album = $data->source($_GET[$env->param("id")], true))){
181 $env->erreur("Impossible de lire les informations de l'album");
184 $album["permissions"] = $data->source_permissions($album, $this->user["id"]);
185 if(!$album["permissions"]["editeur"]){
186 $env->erreur("vous n'avez pas la permission d'editer cet album");
189 if(!$data->check_user_uploads_dir()){
190 $env->erreur("Impossible de creer le repertoire utilisateur");
193 $web_path = $env->path("web");
194 $upload_dir = $env->path("content")."uploads/".$this->user["id"];
195 $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$env->path("content")."uploads/".$this->user["id"];
197 $source_infos = array(
198 "date_inscription" => $_POST["date_inscription"],
199 "ordre" => isset($album["ordre"]) ? $album["ordre"] : 0
201 $album = $data->empty_source(
203 "id" => $album["id"],
204 "groupes" => $album["groupes"],
205 "image" => isset($album["image"]) ? $album["image"] : ""
208 $users_sources_mod = $env->get_controller("users/sources");
209 if(!($album["titre"] = trim($_POST["titre"]))){
210 $env->message("merci de préciser un titre pour l'album");
212 $album["licence"] = array(
213 "id" => $_POST["licence"]
215 $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"];
216 $source_infos["description"] = $_POST["description"];
217 foreach($_POST as $post_key => $post_value){
218 if(substr($post_key, 0, 13) == "document_nom_"){
219 if($id_document = substr($post_key, 13)){
220 $album["documents"][$id_document] = array(
221 "nom" => $_POST["document_nom_".$id_document],
222 "url" => $_POST["document_url_".$id_document]
227 if(!$env->messages()){
228 if(isset($_POST["del_image"])){
230 if(!@unlink($env->path("content")."uploads/".$album["image"])){
231 $env->erreur("Impossible d'effacer l'image");
235 $album["image"] = "";
238 if(($up_image = $data->upload("image", $upload_dir)) === false){
239 $env->erreur("Impossible d'uploader l'image");
242 if($up_image) $album["image"] = $this->user["id"]."/".$up_image;
244 if($album["image"]) $source_infos["image"] = $album["image"];
251 $this->album_status_id,
252 $album["licence"]["id"],
255 $album["derivations"],
260 $env->erreur("Impossible de modifier l'album");
264 $env->url("users/albums/edit", array("id" => $album["id"])),
265 "l'album a été modifié"
269 $env->set_out("groupes", $groupes);
270 $env->set_out("sources_access", $sources_access);
271 $env->set_out("licences", $licences);
272 $env->set_out("album", $album);
277 $data = $env->data();
278 if(!($album = $data->source($_GET[$env->param("id")], true))){
279 $env->erreur("Impossible de lire les informations de l'album");
282 $album["permissions"] = $data->source_permissions($album, $this->user["id"]);
283 if(!$album["permissions"]["admin"]){
284 $env->erreur("vous n'avez pas la permission d'effacer cet album");
287 if(!$data->del_source($album["id"])){
288 $env->erreur("Impossible de supprimer l'album");
292 $env->url("users/albums"),
293 "l'album a été supprimé"
300 !($sources_invitations_controller = $env->get_controller("users/sources_invitations"))
301 || !$sources_invitations_controller->validate()
303 $env->erreur("impossible de valider le controleur users/sources_invitations");
306 $sources_invitations_controller->source_groupes();