X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;ds=sidebyside;f=app%2Fcontrollers%2Fusers%2Fpistes.php;h=fa2dbae281a2b1f021e09fbb655023c7bfb04fd6;hb=HEAD;hp=0b2d177af68c5cd6f2674ee9b6c4f6345a9fe1c1;hpb=b2437852f60b76e437950c0458149d92686ee38b;p=mw_sourceml diff --git a/app/controllers/users/pistes.php b/app/controllers/users/pistes.php index 0b2d177..fa2dbae 100644 --- a/app/controllers/users/pistes.php +++ b/app/controllers/users/pistes.php @@ -2,14 +2,13 @@ class mw_users_pistes extends mw_controller{ - var $user; + public $user; + public $status; + public $album_status_id; + public $morceau_status_id; + public $piste_status_id; - var $status; - var $album_status_id; - var $morceau_status_id; - var $piste_status_id; - - function validate(){ + public function validate(){ $env = $this->env(); $data = $env->data(); if(($this->status = $data->source_status()) === false){ @@ -34,7 +33,7 @@ return true; } - function index(){ + public function index(){ $env = $this->env(); $data = $env->data(); if(($groupes = $data->groupes($this->user["id"])) === false){ @@ -110,7 +109,7 @@ $env->set_out("pistes", $pistes); } - function add(){ + public function add(){ $env = $this->env(); $data = $env->data(); $piste = $data->empty_source(); @@ -128,7 +127,8 @@ if($groupes["total"] > 0){ $select = array( "status" => $this->morceau_status_id, - "id_user" => $this->user["id"] + "id_user" => $this->user["id"], + "is_reference" => false ); foreach($groupes["list"] as $id_groupe => $groupe){ $select["id_groupe"] = $id_groupe; @@ -150,7 +150,21 @@ $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)) + ){ + $piste["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; @@ -209,6 +223,8 @@ ); $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; $source_infos["description"] = $_POST["description"]; + $piste["description"] = $source_infos["description"]; + $piste["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)){ @@ -232,7 +248,7 @@ $piste["groupes"], $piste["titre"], $this->piste_status_id, - $piste["licence"]["id"], + isset($piste["licence"]["id"]) ? $piste["licence"]["id"] : null, $piste["documents"], $piste["reference"], $piste["derivations"], @@ -250,7 +266,7 @@ } } $env->redirect( - $env->url("users/pistes"), + $env->url("users/pistes/edit", array("id" => $id_source)), "la piste a été ajoutée" ); } @@ -264,7 +280,7 @@ $env->set_out("morceau", $morceau); } - function edit(){ + public function edit(){ $env = $this->env(); $data = $env->data(); if(($groupes = $data->groupes($this->user["id"])) === false){ @@ -313,8 +329,14 @@ $env->erreur("Impossible de lire la liste des compositions"); return; } - if($compositions) foreach($compositions[$piste["id"]] as $id_morceau) { $piste["morceau"] = $id_morceau; break; } + if($compositions) foreach($compositions[$piste["id"]] as $id_morceau){ + $piste["morceau"] = $id_morceau; + break; + } if($_POST){ + $permissions = $piste["permissions"]; + $image = isset($piste["image"]) ? $piste["image"] : null; + $image_uri = isset($piste["image_uri"]) ? $piste["image_uri"] : null; $source_infos = array( "date_inscription" => $_POST["date_inscription"], "ordre" => isset($piste["ordre"]) ? $piste["ordre"] : 0 @@ -326,6 +348,10 @@ "image" => isset($piste["image"]) ? $piste["image"] : "" ) ); + $piste["permissions"] = $permissions; + $piste["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; + $piste["image"] = $image; + $piste["image_uri"] = $image_uri; $users_sources_mod = $env->get_controller("users/sources"); if($_POST["morceau"]){ if($morceau = $data->source($_POST["morceau"], true)){ @@ -381,6 +407,7 @@ ); $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; $source_infos["description"] = $_POST["description"]; + $piste["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)){ @@ -451,7 +478,8 @@ $env->set_out("piste", $piste); } - function maj_xml(){ + public function maj_xml(){ + $env = $this->env(); $data = $env->data(); if(!($piste = $data->source($_GET[$env->param("id")], true))){ $env->erreur("Impossible de lire les informations de la piste"); @@ -462,10 +490,11 @@ $env->erreur("vous n'avez pas la permission d'editer cette piste"); 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; @@ -513,7 +542,7 @@ $env->run("users/pistes/edit", array("get" => array("id" => $piste["id"]))); } - function del(){ + public function del(){ $env = $this->env(); $data = $env->data(); if(!($piste = $data->source($_GET[$env->param("id")], true))){ @@ -535,7 +564,7 @@ ); } - function groupes(){ + public function groupes(){ $env = $this->env(); if( !($sources_invitations_controller = $env->get_controller("users/sources_invitations")) @@ -548,5 +577,3 @@ } } - -?> \ No newline at end of file