From 07d04626b2bd3e64763c10c961e6cfa3c90dc427 Mon Sep 17 00:00:00 2001 From: dj3c1t Date: Mon, 1 Jul 2013 21:08:30 +0200 Subject: [PATCH] plusieurs auteurs (maj controleur albums) --- app/controllers/users/albums.php | 453 +++++++++++++++------------- app/controllers/users/morceaux.php | 16 +- app/controllers/users/pistes.php | 16 +- app/out/default/views/users/albums/edit.php | 64 ++-- app/out/default/views/users/albums/list.php | 26 +- 5 files changed, 322 insertions(+), 253 deletions(-) diff --git a/app/controllers/users/albums.php b/app/controllers/users/albums.php index de892dd..767ba19 100644 --- a/app/controllers/users/albums.php +++ b/app/controllers/users/albums.php @@ -1,260 +1,297 @@ 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é" + ); } } diff --git a/app/controllers/users/morceaux.php b/app/controllers/users/morceaux.php index abd7e2c..24d0c7c 100644 --- a/app/controllers/users/morceaux.php +++ b/app/controllers/users/morceaux.php @@ -172,11 +172,11 @@ $env, $xml_url, ( - $_POST["use_edit_derivation_content_".$id_source_derivation] ? + isset($_POST["use_edit_derivation_content_".$id_source_derivation]) ? $_POST["edit_derivation_content_".$id_source_derivation] : ($xml_url ? $data->get_source_xml_from_url($xml_url) : "") ), - $_POST["use_edit_derivation_content_".$id_source_derivation] ? true : false + isset($_POST["use_edit_derivation_content_".$id_source_derivation]) ? true : false ); } } @@ -187,11 +187,11 @@ $env, $xml_url, ( - $_POST["use_edit_reference_content"] ? + isset($_POST["use_edit_reference_content"]) ? $_POST["edit_reference_content"] : ($xml_url ? $data->get_source_xml_from_url($xml_url) : "") ), - $_POST["use_edit_reference_content"] ? true : false + isset($_POST["use_edit_reference_content"]) ? true : false ); } else{ @@ -337,11 +337,11 @@ $env, $xml_url, ( - $_POST["use_edit_derivation_content_".$id_source_derivation] ? + isset($_POST["use_edit_derivation_content_".$id_source_derivation]) ? $_POST["edit_derivation_content_".$id_source_derivation] : ($xml_url ? $data->get_source_xml_from_url($xml_url) : "") ), - $_POST["use_edit_derivation_content_".$id_source_derivation] ? true : false + isset($_POST["use_edit_derivation_content_".$id_source_derivation]) ? true : false ); } } @@ -352,11 +352,11 @@ $env, $xml_url, ( - $_POST["use_edit_reference_content"] ? + isset($_POST["use_edit_reference_content"]) ? $_POST["edit_reference_content"] : ($xml_url ? $data->get_source_xml_from_url($xml_url) : "") ), - $_POST["use_edit_reference_content"] ? true : false + isset($_POST["use_edit_reference_content"]) ? true : false ); } else{ diff --git a/app/controllers/users/pistes.php b/app/controllers/users/pistes.php index 0ef6007..4fd25f6 100644 --- a/app/controllers/users/pistes.php +++ b/app/controllers/users/pistes.php @@ -177,11 +177,11 @@ $env, $xml_url, ( - $_POST["use_edit_derivation_content_".$id_source_derivation] ? + isset($_POST["use_edit_derivation_content_".$id_source_derivation]) ? $_POST["edit_derivation_content_".$id_source_derivation] : ($xml_url ? $data->get_source_xml_from_url($xml_url) : "") ), - $_POST["use_edit_derivation_content_".$id_source_derivation] ? true : false + isset($_POST["use_edit_derivation_content_".$id_source_derivation]) ? true : false ); } } @@ -192,11 +192,11 @@ $env, $xml_url, ( - $_POST["use_edit_reference_content"] ? + isset($_POST["use_edit_reference_content"]) ? $_POST["edit_reference_content"] : ($xml_url ? $data->get_source_xml_from_url($xml_url) : "") ), - $_POST["use_edit_reference_content"] ? true : false + isset($_POST["use_edit_reference_content"]) ? true : false ); } else{ @@ -342,11 +342,11 @@ $env, $xml_url, ( - $_POST["use_edit_derivation_content_".$id_source_derivation] ? + isset($_POST["use_edit_derivation_content_".$id_source_derivation]) ? $_POST["edit_derivation_content_".$id_source_derivation] : ($xml_url ? $data->get_source_xml_from_url($xml_url) : "") ), - $_POST["use_edit_derivation_content_".$id_source_derivation] ? true : false + isset($_POST["use_edit_derivation_content_".$id_source_derivation]) ? true : false ); } } @@ -357,11 +357,11 @@ $env, $xml_url, ( - $_POST["use_edit_reference_content"] ? + isset($_POST["use_edit_reference_content"]) ? $_POST["edit_reference_content"] : ($xml_url ? $data->get_source_xml_from_url($xml_url) : "") ), - $_POST["use_edit_reference_content"] ? true : false + isset($_POST["use_edit_reference_content"]) ? true : false ); } else{ diff --git a/app/out/default/views/users/albums/edit.php b/app/out/default/views/users/albums/edit.php index 2d737f5..a88a7a4 100644 --- a/app/out/default/views/users/albums/edit.php +++ b/app/out/default/views/users/albums/edit.php @@ -1,4 +1,4 @@ -out_file("views/tinymce.init.js.php"); ?> +out_file("views/tinymce.init.js.php"); $data = $this->data(); ?>

Modifier un album

@@ -10,18 +10,31 @@
$_GET[$this->param("id")])) ?>" method="post" enctype="multipart/form-data">
+ " /> +
  • - +
    - +
      + out["album"]["groupes"] as $id_groupe => $groupe) : ?> +
    • + + out["sources_access"][$groupe["id_groupe_status"]]["intitule"]; ?> +
    • + +
  • + +
+ + + +
  • @@ -29,7 +42,7 @@ " />
  • - +
  • @@ -52,30 +65,30 @@
  • - +
  • - out["album"]["date_creation"] ? - explode("-", $this->out["album"]["date_creation"]) - : array(0 => date("Y"), 1 => date("m"), 2 => date("d")) - ); - - ?> + out["album"]["date_creation"] ? + explode("-", $this->out["album"]["date_creation"]) + : array(0 => date("Y"), 1 => date("m"), 2 => date("d")) + ); + + ?> jour mois année @@ -105,13 +118,18 @@
  • +
  • -
  • + +
+ +
    +
  • diff --git a/app/out/default/views/users/albums/list.php b/app/out/default/views/users/albums/list.php index bd1ba9c..d7f45a1 100644 --- a/app/out/default/views/users/albums/list.php +++ b/app/out/default/views/users/albums/list.php @@ -8,10 +8,15 @@
    • +
    • @@ -41,9 +46,18 @@ - [ référence » "> ] + référence » "> () - + $id_album)) ?>"> + + +
      + + dérive de » + + "> () + + " size="3" /> @@ -79,7 +93,7 @@
-out_file("views/navig.php"); ?> +out_file("views/navig.php"); ?>

Aucun album pour le moment

-- 2.1.4