<?php
- class mw_users_albums extends mw_controller
- {
- var $groupes;
- var $album;
+ class mw_users_albums extends mw_controller{
+
var $user;
+
var $status;
var $album_status_id;
function validate(){
$env = $this->env();
$data = $env->data();
- if(($this->status = $data->source_status()) !== false)
- { foreach($this->status as $id_source_status => $source_status)
- { if($source_status["nom"] == "album")
- { $this->album_status_id = $id_source_status;
- break;
- }
- }
- if(isset($this->album_status_id))
- { if($this->user = $env->user())
- { if(($this->groupes = $data->groupes($this->user["id"])) !== false)
- { $env->set_out("groupes", $this->groupes);
- if($env->etat("action") == "edit" || $env->etat("action") == "del")
- { if(($this->album = $data->source($_GET[$env->param("id")], true)) !== false && $this->album)
- {
- }
- else return "Impossible de lire les informations de l'album";
- }
- if($env->etat("action") == "add" || $env->etat("action") == "edit")
- { if(($this->licences = $data->licences()) !== false)
- { $env->set_out("licences", $this->licences);
- }
- else return "Impossible de lire la liste des licences";
- }
- }
- else return "Impossible de lire la liste des groupes";
- }
- else return "Vous devez être identifier pour accéder à cette page";
+ if(($this->status = $data->source_status()) === false){
+ return "Impossible de lire la liste des status de source";
+ }
+ foreach($this->status as $id_source_status => $source_status){
+ if($source_status["nom"] == "album"){
+ $this->album_status_id = $id_source_status;
+ break;
}
- else return "Type de source inconnu: album";
}
- else return "Impossible de lire la liste des status de source";
+ if(!isset($this->album_status_id)){
+ return "Type de source inconnu: album";
+ }
+ if(!($this->user = $env->user())){
+ return "Vous devez être identifié pour accéder à cette page";
+ }
return true;
}
function index(){
$env = $this->env();
$data = $env->data();
- $select = array();
- $select["status"] = $this->album_status_id;
- $select["id_user"] = $this->user["id"];
- $select["order_by"] = "ordre";
- $select["start"] = isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0;
- if(isset($_GET[$env->param("groupe")]) && $_GET[$env->param("groupe")]) $select["id_groupe"] = $_GET[$env->param("groupe")];
- if(($albums = $data->sources($select)) !== false){
- foreach($albums["list"] as $id_album => $album)
- { $albums["list"][$id_album]["permissions"] = $data->source_permissions($albums["list"][$id_album], $this->user["id"]);
+ if(($groupes = $data->groupes($this->user["id"])) === false){
+ $env->erreur("Impossible de lire la liste des groupes");
+ return;
+ }
+ $id_groupe = false;
+ if(isset($_GET[$env->param("groupe")])){
+ $id_groupe = $_GET[$env->param("groupe")];
+ if(!isset($groupes["list"][$id_groupe])){
+ $env->erreur("Impossible de lire les informations du groupe");
+ return;
}
- if($_POST)
- { $OK = true;
- foreach($albums["list"] as $id_album => $album)
- { if(isset($_POST["ordre_".$id_album]))
- { if($data->set_source_info($id_album, "ordre", $_POST["ordre_".$id_album]) === false)
- { $OK = false;
- break;
- }
+ }
+ $select = array(
+ "status" => $this->album_status_id,
+ "id_user" => $this->user["id"],
+ "order_by" => "ordre",
+ "start" => isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0
+ );
+ if($id_groupe) $select["id_groupe"] = $id_groupe;
+ if(($albums = $data->sources($select)) === false){
+ $env->erreur("impossible de lire la liste des albums");
+ return;
+ }
+ foreach($albums["list"] as $id_album => $album){
+ $albums["list"][$id_album]["permissions"] = $data->source_permissions($album, $this->user["id"]);
+ }
+ if($_POST){
+ foreach($albums["list"] as $id_album => $album){
+ if(isset($_POST["ordre_".$id_album])){
+ if($data->set_source_info($album["id"], "ordre", $_POST["ordre_".$id_album]) === false){
+ $env->erreur("Impossible d'enregistrer l'ordre des albums");
+ return;
}
}
- if($OK)
- { $get_params = array();
- if(isset($_GET[$env->param("groupe")]) && $_GET[$env->param("groupe")]) $get_params["groupe"] = $_GET[$env->param("groupe")];
- $env->redirect
- ( $env->url("users/albums", $get_params),
- "l'ordre des albums a été enregistré"
- );
- }
- else $env->erreur("Impossible d'enregistrer l'ordre des albums");
}
- $env->set_out("albums", $albums);
+ $get_params = array();
+ if($id_groupe) $get_params["groupe"] = $id_groupe;
+ $env->redirect(
+ $env->url("users/albums", $get_params),
+ "l'ordre des albums a été enregistré"
+ );
}
- else $env->erreur("Impossible de lire la liste des albums");
+ $env->set_out("groupes", $groupes);
+ $env->set_out("albums", $albums);
}
function add(){
$env = $this->env();
$data = $env->data();
- if($data->check_user_uploads_dir())
- { $web_path = $env->path("web");
- $upload_dir = $env->path("content")."uploads/".$this->user["id"];
- $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$upload_dir;
- $this->album = $data->empty_source();
- $source_infos = array
- ( "date_inscription" => date("Y")."-".date("m")."-".date("d"),
- "ordre" => 0
+ $album = $data->empty_source();
+ $source_infos = array(
+ "date_inscription" => date("Y-m-d"),
+ "ordre" => 0
+ );
+ $groupe = false;
+ if(($groupes = $data->groupes($this->user["id"])) === false){
+ $env->erreur("Impossible de lire la liste des groupes");
+ return;
+ }
+ if(($licences = $data->licences()) === false){
+ return "Impossible de lire la liste des licences";
+ }
+ if(!$data->check_user_uploads_dir()){
+ $env->erreur("Impossible de creer le repertoire utilisateur");
+ return;
+ }
+ $web_path = $env->path("web");
+ $upload_dir = $env->path("content")."uploads/".$this->user["id"];
+ $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$env->path("content")."uploads/".$this->user["id"];
+ $users_sources_mod = $env->get_controller("users/sources");
+ if($_POST){
+ if(!($groupe = $data->groupe($_POST["id_groupe"]))){
+ $env->erreur("Impossible de lire les informations du groupe");
+ return;
+ }
+ $groupe["id_groupe_status"] = $data->id_groupe_status_admin();
+ $album["groupes"] = array($groupe["id"] => $groupe);
+ if(!($album["titre"] = trim($_POST["titre"]))){
+ $env->message("merci de préciser un titre pour l'album");
+ }
+ $album["licence"] = array(
+ "id" => $_POST["licence"]
);
- if($_POST)
- { if(($groupe = $data->groupe($_POST["id_groupe"])) !== false)
- { $groupe["id_groupe_status"] = $data->id_groupe_status_admin();
- $env->set_out("groupe", $groupe);
- $this->album["groupes"] = array($groupe["id"] => $groupe);
- $this->album["titre"] = trim($_POST["titre"]);
- $this->album["licence"] = array
- ( "id" => $_POST["licence"]
- );
- $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"];
- $source_infos["description"] = $_POST["description"];
- foreach($_POST as $post_key => $post_value)
- { if(substr($post_key, 0, 13) == "document_nom_")
- { if($id_document = substr($post_key, 13))
- { $this->album["documents"][$id_document] = array
- ( "nom" => $_POST["document_nom_".$id_document],
- "url" => $_POST["document_url_".$id_document]
- );
- }
- }
- }
- if($this->album["titre"])
- { if(($image = $data->upload("image", $upload_dir)) !== false)
- { if($image) $source_infos["image"] = $this->user["id"]."/".$image;
- if
- ( $data->add_source
- ( $this->album["groupes"],
- $this->album["titre"],
- $this->album_status_id,
- $this->album["licence"]["id"],
- $this->album["documents"],
- $this->album["reference"],
- $this->album["derivations"],
- $source_infos
- )
- ) $env->redirect
- ( $env->url("users/albums"),
- "l'album a été ajouté"
- );
- else $env->erreur("Impossible d'ajouter l'album");
- }
- else $env->erreur("Impossible d'uploader l'image");
+ $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"];
+ $source_infos["description"] = $_POST["description"];
+ foreach($_POST as $post_key => $post_value){
+ if(substr($post_key, 0, 13) == "document_nom_"){
+ if($id_document = substr($post_key, 13)){
+ $album["documents"][$id_document] = array(
+ "nom" => $_POST["document_nom_".$id_document],
+ "url" => $_POST["document_url_".$id_document]
+ );
}
- else $env->message("merci de préciser un titre pour l'album");
}
- else $env->erreur("Impossible de lire les informations du groupe");
}
- foreach($source_infos as $info_key => $info_value) $this->album[$info_key] = $info_value;
- $env->set_out("album", $this->album);
+ if(!$env->messages()){
+ if(($image = $data->upload("image", $upload_dir)) === false){
+ $env->erreur("erreur lors de l'envoi de l'image. l'album n'a pas été ajouté");
+ return;
+ }
+ if($image) $source_infos["image"] = $this->user["id"]."/".$image;
+ if(
+ (
+ $id_source = $data->add_source(
+ $album["groupes"],
+ $album["titre"],
+ $this->album_status_id,
+ $album["licence"]["id"],
+ $album["documents"],
+ $album["reference"],
+ $album["derivations"],
+ $source_infos
+ )
+ ) === false
+ ){
+ $env->erreur("Impossible d'ajouter l'album");
+ return;
+ }
+ $env->redirect(
+ $env->url("users/albums"),
+ "l'album a été ajouté"
+ );
+ }
}
- else $env->erreur("Impossible de creer le repertoire utilisateur");
+ $env->set_out("groupes", $groupes);
+ $env->set_out("licences", $licences);
+ $env->set_out("album", $album);
+ $env->set_out("source_infos", $source_infos);
+ $env->set_out("groupe", $groupe);
}
function edit(){
$env = $this->env();
$data = $env->data();
- $this->album["permissions"] = $data->source_permissions($this->album, $this->user["id"]);
- if($this->album["permissions"]["editeur"])
- { if($data->check_user_uploads_dir())
- { $web_path = $env->path("web");
- $upload_dir = $env->path("content")."uploads/".$this->user["id"];
- $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$upload_dir;
- $source_infos = array
- ( "date_inscription" => $this->album["date_inscription"],
- "ordre" => $this->album["ordre"],
- "date_creation" => $this->album["date_creation"],
- "description" => $this->album["description"],
- "image" => isset($this->album["image"]) ? $this->album["image"] : null
- );
- $env->set_out("groupe", $data->get_admin_groupe($this->album["groupes"]));
-
- if($_POST)
- { if(($groupe = $data->groupe($_POST["id_groupe"])) !== false)
- { $env->set_out("groupe", $groupe);
- $groupe["id_groupe_status"] = $data->id_groupe_status_admin();
- $this->album["groupes"] = array($groupe["id"] => $groupe);
- $this->album["titre"] = trim($_POST["titre"]);
- $this->album["licence"] = array
- ( "id" => $_POST["licence"]
+ if(($groupes = $data->groupes($this->user["id"])) === false){
+ $env->erreur("Impossible de lire la liste des groupes");
+ return;
+ }
+ if(($licences = $data->licences()) === false){
+ $env->erreur("Impossible de lire la liste des licences");
+ return;
+ }
+ if(($sources_access = $data->sources_access()) === false){
+ $env->erreur("Impossible de lire les types d'access");
+ return;
+ }
+ if(!($album = $data->source($_GET[$env->param("id")], true))){
+ $env->erreur("Impossible de lire les informations de l'album");
+ return;
+ }
+ $album["permissions"] = $data->source_permissions($album, $this->user["id"]);
+ if(!$album["permissions"]["editeur"]){
+ $env->erreur("vous n'avez pas la permission d'editer cet album");
+ return;
+ }
+ if(!$data->check_user_uploads_dir()){
+ $env->erreur("Impossible de creer le repertoire utilisateur");
+ return;
+ }
+ $web_path = $env->path("web");
+ $upload_dir = $env->path("content")."uploads/".$this->user["id"];
+ $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$env->path("content")."uploads/".$this->user["id"];
+ if($_POST){
+ $source_infos = array(
+ "date_inscription" => $_POST["date_inscription"],
+ "ordre" => isset($album["ordre"]) ? $album["ordre"] : 0
+ );
+ $album = $data->empty_source(
+ array(
+ "id" => $album["id"],
+ "groupes" => $album["groupes"],
+ "image" => isset($album["image"]) ? $album["image"] : ""
+ )
+ );
+ $users_sources_mod = $env->get_controller("users/sources");
+ if(!($album["titre"] = trim($_POST["titre"]))){
+ $env->message("merci de préciser un titre pour l'album");
+ }
+ $album["licence"] = array(
+ "id" => $_POST["licence"]
+ );
+ $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"];
+ $source_infos["description"] = $_POST["description"];
+ foreach($_POST as $post_key => $post_value){
+ if(substr($post_key, 0, 13) == "document_nom_"){
+ if($id_document = substr($post_key, 13)){
+ $album["documents"][$id_document] = array(
+ "nom" => $_POST["document_nom_".$id_document],
+ "url" => $_POST["document_url_".$id_document]
);
- $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"];
- $source_infos["description"] = $_POST["description"];
- $this->album["documents"] = array();
- foreach($_POST as $post_key => $post_value)
- { if(substr($post_key, 0, 13) == "document_nom_")
- { if($id_document = substr($post_key, 13))
- { $this->album["documents"][$id_document] = array
- ( "nom" => $_POST["document_nom_".$id_document],
- "url" => $_POST["document_url_".$id_document]
- );
- }
- }
- }
- if($this->album["titre"])
- { if(isset($_POST["del_image"]))
- { if($this->album["image"])
- { if(@unlink($env->path("content")."uploads/".$this->album["image"])) $this->album["image"] = "";
- else
- { $this->album["image"] = false;
- $env->erreur("Impossible d'effacer l'image");
- }
- }
- else $this->album["image"] = "";
- }
- else
- { if(($up_image = $data->upload("image", $upload_dir)) !== false)
- { if($up_image) $this->album["image"] = $this->user["id"]."/".$up_image;
- }
- else
- { $env->erreur("Impossible d'uploader l'image");
- return;
- }
- }
- if($this->album["image"] !== false)
- { if($this->album["image"]) $source_infos["image"] = $this->album["image"];
- if
- ( $data->set_source
- ( $this->album["id"],
- $this->album["groupes"],
- $this->album["titre"],
- $this->album_status_id,
- $this->album["licence"]["id"],
- $this->album["documents"],
- $this->album["reference"],
- $this->album["derivations"],
- $source_infos
- )
- ) $env->redirect
- ( $env->url("users/albums/edit", array("id" => $this->album["id"])),
- "l'album a été modifié"
- );
- else $env->erreur("Impossible de modifier l'album");
- }
- else $env->erreur("Impossible d'uploader l'image");
+ }
+ }
+ }
+ if(!$env->messages()){
+ if(isset($_POST["del_image"])){
+ if($album["image"]){
+ if(!@unlink($env->path("content")."uploads/".$album["image"])){
+ $env->erreur("Impossible d'effacer l'image");
+ return;
}
- else $env->message("merci de préciser un titre pour l'album");
}
- else $env->erreur("Impossible de lire les informations du groupe");
+ $album["image"] = "";
+ }
+ else{
+ if(($up_image = $data->upload("image", $upload_dir)) === false){
+ $env->erreur("Impossible d'uploader l'image");
+ return;
+ }
+ if($up_image) $album["image"] = $this->user["id"]."/".$up_image;
}
- $env->set_out("album", $this->album);
+ if($album["image"]) $source_infos["image"] = $album["image"];
+ if(
+ (
+ $data->set_source(
+ $album["id"],
+ $album["groupes"],
+ $album["titre"],
+ $this->album_status_id,
+ $album["licence"]["id"],
+ $album["documents"],
+ $album["reference"],
+ $album["derivations"],
+ $source_infos
+ )
+ ) === false
+ ){
+ $env->erreur("Impossible de modifier l'album");
+ return;
+ }
+ $env->redirect(
+ $env->url("users/albums/edit", array("id" => $album["id"])),
+ "l'album a été modifié"
+ );
}
- else $env->erreur("Impossible de creer le repertoire utilisateur");
}
- else $env->erreur("Vous n'avez pas la permission de modifier cet album");
+ $env->set_out("groupes", $groupes);
+ $env->set_out("sources_access", $sources_access);
+ $env->set_out("licences", $licences);
+ $env->set_out("album", $album);
}
function del(){
$env = $this->env();
$data = $env->data();
- $this->album["permissions"] = $data->source_permissions($this->album, $this->user["id"]);
- if($this->album["permissions"]["admin"])
- { if($data->del_source($this->album["id"]))
- { $env->redirect
- ( $env->url("users/albums"),
- "l'album a été supprimé"
- );
- }
- else $env->erreur("Impossible de supprimer l'album");
+ if(!($album = $data->source($_GET[$env->param("id")], true))){
+ $env->erreur("Impossible de lire les informations de l'album");
+ return;
+ }
+ $album["permissions"] = $data->source_permissions($album, $this->user["id"]);
+ if(!$album["permissions"]["admin"]){
+ $env->erreur("vous n'avez pas la permission d'effacer cet album");
+ return;
+ }
+ if(!$data->del_source($album["id"])){
+ $env->erreur("Impossible de supprimer l'album");
+ return;
}
- else $env->erreur("Vous n'avez pas la permission de supprimer cet album");
+ $env->redirect(
+ $env->url("users/albums"),
+ "l'album a été supprimé"
+ );
}
}