nouveaux noms d'elements dans les fichiers XML des sources
[mw_sourceml] / app / controllers / users / morceaux.php
index abd7e2c..75414bc 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,
+            false
+          );
+        }
+      }
+      elseif($_POST){
         if(!($groupe = $data->groupe($_POST["id_groupe"]))){
           $env->erreur("Impossible de lire les informations du groupe");
           return;
                 $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
               );
             }
           }
             $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{
           );
           $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)){
           }
         }
         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");
           "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)){
                 $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
               );
             }
           }
             $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"]))){
           );
           $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)){
           }
         }
         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 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;
       );
     }
 
+    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