X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=app%2Fcontrollers%2Fusers%2Fmorceaux.php;h=9bf2fdfa4933bee180cd265087fb56e7cef88413;hb=HEAD;hp=abd7e2c964f53c914a67e3704a711db6eacd525f;hpb=2802d2dbcb5a1ea3c269d6fb4df9fbfb0f13f93d;p=mw_sourceml diff --git a/app/controllers/users/morceaux.php b/app/controllers/users/morceaux.php index abd7e2c..9bf2fdf 100644 --- a/app/controllers/users/morceaux.php +++ b/app/controllers/users/morceaux.php @@ -2,13 +2,12 @@ class mw_users_morceaux extends mw_controller{ - var $user; + public $user; + public $status; + public $album_status_id; + public $morceau_status_id; - var $status; - var $album_status_id; - var $morceau_status_id; - - function validate(){ + public function validate(){ $env = $this->env(); $data = $env->data(); if(($this->status = $data->source_status()) === false){ @@ -29,7 +28,7 @@ return true; } - function index(){ + public function index(){ $env = $this->env(); $data = $env->data(); if(($groupes = $data->groupes($this->user["id"])) === false){ @@ -105,7 +104,7 @@ $env->set_out("morceaux", $morceaux); } - function add(){ + public function add(){ $env = $this->env(); $data = $env->data(); $morceau = $data->empty_source(); @@ -142,9 +141,24 @@ 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(isset($_POST["button_derive"])){ + if( + ($origin_source_id = $_POST["button_derive"]) + && ($origin_source_xml_url = $data->source_xml_url($origin_source_id)) + && ($origin_source_xml_content = $data->get_source_xml($origin_source_id)) + ){ + $morceau["derivations"][$origin_source_id] = $users_sources_mod->get_source_from_xml( + $env, + $origin_source_xml_url, + $origin_source_xml_content, + false + ); + } + } + elseif($_POST){ if(!($groupe = $data->groupe($_POST["id_groupe"]))){ $env->erreur("Impossible de lire les informations du groupe"); return; @@ -172,11 +186,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 +201,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{ @@ -203,6 +217,8 @@ ); $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; $source_infos["description"] = $_POST["description"]; + $morceau["description"] = $source_infos["description"]; + $morceau["date_creation"] = $source_infos["date_creation"]; foreach($_POST as $post_key => $post_value){ if(substr($post_key, 0, 13) == "document_nom_"){ if($id_document = substr($post_key, 13)){ @@ -215,13 +231,18 @@ } } if(!$env->messages()){ + if(($image = $data->upload("image", $upload_dir)) === false){ + $env->erreur("erreur lors de l'envoi de l'image. le morceau n'a pas été ajouté"); + return; + } + if($image) $source_infos["image"] = $this->user["id"]."/".$image; if( ( $id_source = $data->add_source( $morceau["groupes"], $morceau["titre"], $this->morceau_status_id, - $morceau["licence"]["id"], + isset($morceau["licence"]["id"]) ? $morceau["licence"]["id"] : null, $morceau["documents"], $morceau["reference"], $morceau["derivations"], @@ -239,7 +260,7 @@ } } $env->redirect( - $env->url("users/morceaux"), + $env->url("users/morceaux/edit", array("id" => $id_source)), "le morceau a été ajouté" ); } @@ -253,7 +274,7 @@ $env->set_out("album", $album); } - function edit(){ + public function edit(){ $env = $this->env(); $data = $env->data(); if(($groupes = $data->groupes($this->user["id"])) === false){ @@ -296,23 +317,36 @@ 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(($compositions = $data->source_compositions(array("id_source" => $morceau["id"]))) === false){ $env->erreur("Impossible de lire la liste des compositions"); return; } - if($compositions) foreach($compositions[$morceau["id"]] as $id_album) { $morceau["album"] = $id_album; break; } + if($compositions) foreach($compositions[$morceau["id"]] as $id_album){ + $morceau["album"] = $id_album; + break; + } if($_POST){ $source_infos = array( "date_inscription" => $_POST["date_inscription"], "ordre" => isset($morceau["ordre"]) ? $morceau["ordre"] : 0 ); + $permissions = $morceau["permissions"]; + $image = isset($morceau["image"]) ? $morceau["image"] : null; + $image_uri = isset($morceau["image_uri"]) ? $morceau["image_uri"] : null; + $image_uri = $morceau["image_uri"]; $morceau = $data->empty_source( array( "id" => $morceau["id"], - "groupes" => $morceau["groupes"] + "groupes" => $morceau["groupes"], + "image" => isset($morceau["image"]) ? $morceau["image"] : "" ) ); + $morceau["permissions"] = $permissions; + $morceau["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; + $morceau["image"] = $image; + $morceau["image_uri"] = $image_uri; $users_sources_mod = $env->get_controller("users/sources"); if($_POST["album"]){ if($album = $data->source($_POST["album"], true)){ @@ -337,11 +371,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,12 +386,13 @@ $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 ); + $morceau["licence"]["id"] = 0; } else{ if(!($morceau["titre"] = trim($_POST["titre"]))){ @@ -368,6 +403,7 @@ ); $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; $source_infos["description"] = $_POST["description"]; + $morceau["description"] = $source_infos["description"]; foreach($_POST as $post_key => $post_value){ if(substr($post_key, 0, 13) == "document_nom_"){ if($id_document = substr($post_key, 13)){ @@ -380,6 +416,23 @@ } } if(!$env->messages()){ + if(isset($_POST["del_image"])){ + if($morceau["image"]){ + if(!@unlink($env->path("content")."uploads/".$morceau["image"])){ + $env->erreur("Impossible d'effacer l'image du morceau"); + return; + } + } + $morceau["image"] = ""; + } + else{ + if(($up_image = $data->upload("image", $upload_dir)) === false){ + $env->erreur("Impossible d'uploader l'image"); + return; + } + if($up_image) $morceau["image"] = $this->user["id"]."/".$up_image; + } + if($morceau["image"]) $source_infos["image"] = $morceau["image"]; if( ( $data->set_source( @@ -421,7 +474,8 @@ $env->set_out("morceau", $morceau); } - function maj_xml(){ + public function maj_xml(){ + $env = $this->env(); $data = $env->data(); if(!($morceau = $data->source($_GET[$env->param("id")], true))){ $env->erreur("Impossible de lire les informations du morceau"); @@ -433,9 +487,9 @@ return; } if - ( isset($_GET[$env->param("id")]) - && isset($_GET[$env->param("xml")]) - && ($_GET[$env->param("xml")] == "derviation" ? isset($_GET[$env->param("derivation")]) : true) + ( !isset($_GET[$env->param("id")]) + || !isset($_GET[$env->param("xml")]) + || ($_GET[$env->param("xml")] == "derviation" && !isset($_GET[$env->param("derivation")])) ){ $env->erreur("parametre de fichier xml manquant"); return; @@ -483,7 +537,7 @@ $env->run("users/morceaux/edit", array("get" => array("id" => $morceau["id"]))); } - function del(){ + public function del(){ $env = $this->env(); $data = $env->data(); if(!($morceau = $data->source($_GET[$env->param("id")], true))){ @@ -505,6 +559,16 @@ ); } - } + public function groupes(){ + $env = $this->env(); + if( + !($sources_invitations_controller = $env->get_controller("users/sources_invitations")) + || !$sources_invitations_controller->validate() + ){ + $env->erreur("impossible de valider le controleur users/sources_invitations"); + return; + } + $sources_invitations_controller->source_groupes(); + } -?> \ No newline at end of file + }