correction bugs derivations
[mw_sourceml] / app / controllers / users / morceaux.php
index eb1eeff..9c3adda 100644 (file)
       $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;
     }
 
     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");
         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;