ajout date_invitation et corrections template
[mw_sourceml] / app / controllers / users / morceaux.php
index 24d0c7c..fce394f 100644 (file)
         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,
+            true
+          );
+        }
+      }
+      elseif($_POST){
         if(!($groupe = $data->groupe($_POST["id_groupe"]))){
           $env->erreur("Impossible de lire les informations du groupe");
           return;
           }
         }
         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(
         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");
         $morceau = $data->empty_source(
           array(
             "id" => $morceau["id"],
-            "groupes" => $morceau["groupes"]
+            "groupes" => $morceau["groupes"],
+            "image" => isset($morceau["image"]) ? $morceau["image"] : ""
           )
         );
         $users_sources_mod = $env->get_controller("users/sources");
           }
         }
         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(
       );
     }
 
+    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