From 2802d2dbcb5a1ea3c269d6fb4df9fbfb0f13f93d Mon Sep 17 00:00:00 2001 From: dj3c1t Date: Sun, 30 Jun 2013 20:36:43 +0200 Subject: [PATCH] plusieurs auteurs pour les sources --- app/controllers/sources/album.php | 5 +- app/controllers/sources/morceau.php | 11 +- app/controllers/sources/piste.php | 7 +- app/controllers/users/albums.php | 16 +- app/controllers/users/morceaux.php | 767 ++++++++++--------- app/controllers/users/pistes.php | 811 +++++++++++---------- .../modules/share/sml_data_sources_xml_format.php | 8 +- app/data/modules/sql/sml_data_source_groupes.php | 91 ++- app/data/modules/sql/sml_data_sources.php | 12 +- app/out/default/css/actions/sources.css | 58 +- app/out/default/css/sourceml_accounts.css | 5 +- app/out/default/js/actions/users.js | 8 +- app/out/default/layouts/sources.xml | 3 +- .../views/forms/sourceml/contact_author.php | 2 +- app/out/default/views/sources/album/ariane.php | 4 - app/out/default/views/sources/album/list.php | 2 +- app/out/default/views/sources/album/view.php | 12 +- app/out/default/views/sources/current_album.php | 31 - .../default/views/sources/current_album_box.php | 11 - app/out/default/views/sources/groupe/view.php | 8 + app/out/default/views/sources/groupe_box.php | 1 - app/out/default/views/sources/lien_contact.php | 8 - app/out/default/views/sources/logo_groupe.php | 36 +- app/out/default/views/sources/morceau/ariane.php | 4 - app/out/default/views/sources/morceau/list.php | 2 +- app/out/default/views/sources/morceau/view.php | 2 +- app/out/default/views/sources/piste/list.php | 2 +- app/out/default/views/sources/piste/view.php | 4 +- app/out/default/views/sources/source/header.php | 18 +- app/out/default/views/users/albums/edit.php | 2 +- app/out/default/views/users/morceaux/edit.php | 59 +- app/out/default/views/users/morceaux/groupes.php | 87 +++ app/out/default/views/users/morceaux/list.php | 22 +- app/out/default/views/users/pistes/add.php | 27 +- app/out/default/views/users/pistes/edit.php | 81 +- app/out/default/views/users/pistes/list.php | 112 +-- mw_sourceml.php | 4 +- 37 files changed, 1249 insertions(+), 1094 deletions(-) delete mode 100644 app/out/default/views/sources/current_album.php delete mode 100644 app/out/default/views/sources/current_album_box.php delete mode 100644 app/out/default/views/sources/lien_contact.php create mode 100644 app/out/default/views/users/morceaux/groupes.php diff --git a/app/controllers/sources/album.php b/app/controllers/sources/album.php index 3640ac8..9364a64 100644 --- a/app/controllers/sources/album.php +++ b/app/controllers/sources/album.php @@ -50,8 +50,9 @@ if(isset($_GET[$env->param("album")]) && $_GET[$env->param("album")]) { if($album = $data->source($_GET[$env->param("album")], true)) { $env->set_out("album", $album); - if($groupe = $data->get_admin_groupe($album["groupes"])) - { $env->set_out("groupe", $groupe); + if($groupe = $data->get_admin_groupe($album["groupes"])){ +// $env->set_out("groupe", $groupe); + $env->set_out("groupes", $album["groupes"]); $select = array("status" => $this->content_sources_mod->album_status_id); $select["id_groupe"] = $groupe["id"]; if(($albums = $data->sources($select)) !== false) diff --git a/app/controllers/sources/morceau.php b/app/controllers/sources/morceau.php index 802430a..3d68bed 100644 --- a/app/controllers/sources/morceau.php +++ b/app/controllers/sources/morceau.php @@ -35,10 +35,12 @@ { if(isset($_GET[$env->param("album")]) && $_GET[$env->param("album")]) { if(($album = $data->source($_GET[$env->param("album")], true)) !== false) { $env->set_out("album", $album); - if(!isset($groupe)) - { $groupe = $data->get_admin_groupe($album["groupes"]); +/* + if(!isset($groupe)){ + $groupe = $data->get_admin_groupe($album["groupes"]); if(!$groupe) $groupe = false; } +*/ } } } @@ -77,8 +79,9 @@ if(isset($_GET[$env->param("morceau")]) && $_GET[$env->param("morceau")]) { if($morceau = $data->source($_GET[$env->param("morceau")], true)) { $env->set_out("morceau", $morceau); - if($groupe = $data->get_admin_groupe($morceau["groupes"])) - { $env->set_out("groupe", $groupe); + if($groupe = $data->get_admin_groupe($morceau["groupes"])){ +// $env->set_out("groupe", $groupe); + $env->set_out("groupes", $morceau["groupes"]); $select = array("status" => $this->content_sources_mod->album_status_id); $select["id_groupe"] = $groupe["id"]; if(($albums = $data->sources($select)) !== false) diff --git a/app/controllers/sources/piste.php b/app/controllers/sources/piste.php index 668892f..b5f1cdf 100644 --- a/app/controllers/sources/piste.php +++ b/app/controllers/sources/piste.php @@ -35,10 +35,12 @@ { if(isset($_GET[$env->param("morceau")]) && $_GET[$env->param("morceau")]) { if(($morceau = $data->source($_GET[$env->param("morceau")], true)) !== false) { $env->set_out("morceau", $morceau); +/* if(!isset($groupe)) { $groupe = $data->get_admin_groupe($morceau["groupes"]); if(!$groupe) $groupe = false; } +*/ } } } @@ -77,8 +79,9 @@ if(isset($_GET[$env->param("piste")]) && $_GET[$env->param("piste")]) { if($piste = $data->source($_GET[$env->param("piste")], true)) { $env->set_out("piste", $piste); - if($groupe = $data->get_admin_groupe($piste["groupes"])) - { $env->set_out("groupe", $groupe); + if($groupe = $data->get_admin_groupe($piste["groupes"])){ +// $env->set_out("groupe", $groupe); + $env->set_out("groupes", $piste["groupes"]); $select = array("status" => $this->content_sources_mod->album_status_id); $select["id_groupe"] = $groupe["id"]; if(($albums = $data->sources($select)) !== false) diff --git a/app/controllers/users/albums.php b/app/controllers/users/albums.php index b26e200..de892dd 100644 --- a/app/controllers/users/albums.php +++ b/app/controllers/users/albums.php @@ -54,8 +54,8 @@ $select["order_by"] = "ordre"; $select["start"] = isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0; if(isset($_GET[$env->param("groupe")]) && $_GET[$env->param("groupe")]) $select["id_groupe"] = $_GET[$env->param("groupe")]; - if(($albums = $data->sources($select)) !== false) - { foreach($albums["list"] as $id_album => $album) + if(($albums = $data->sources($select)) !== false){ + foreach($albums["list"] as $id_album => $album) { $albums["list"][$id_album]["permissions"] = $data->source_permissions($albums["list"][$id_album], $this->user["id"]); } if($_POST) @@ -151,8 +151,8 @@ function edit(){ $env = $this->env(); $data = $env->data(); - $this->album["premissions"] = $data->source_permissions($this->album, $this->user["id"]); - if($this->album["premissions"]["editeur"]) + $this->album["permissions"] = $data->source_permissions($this->album, $this->user["id"]); + if($this->album["permissions"]["editeur"]) { if($data->check_user_uploads_dir()) { $web_path = $env->path("web"); $upload_dir = $env->path("content")."uploads/".$this->user["id"]; @@ -162,9 +162,10 @@ "ordre" => $this->album["ordre"], "date_creation" => $this->album["date_creation"], "description" => $this->album["description"], - "image" => $this->album["image"] + "image" => isset($this->album["image"]) ? $this->album["image"] : null ); $env->set_out("groupe", $data->get_admin_groupe($this->album["groupes"])); + if($_POST) { if(($groupe = $data->groupe($_POST["id_groupe"])) !== false) { $env->set_out("groupe", $groupe); @@ -176,6 +177,7 @@ ); $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; $source_infos["description"] = $_POST["description"]; + $this->album["documents"] = array(); foreach($_POST as $post_key => $post_value) { if(substr($post_key, 0, 13) == "document_nom_") { if($id_document = substr($post_key, 13)) @@ -242,8 +244,8 @@ function del(){ $env = $this->env(); $data = $env->data(); - $this->album["premissions"] = $data->source_permissions($this->album, $this->user["id"]); - if($this->album["premissions"]["admin"]) + $this->album["permissions"] = $data->source_permissions($this->album, $this->user["id"]); + if($this->album["permissions"]["admin"]) { if($data->del_source($this->album["id"])) { $env->redirect ( $env->url("users/albums"), diff --git a/app/controllers/users/morceaux.php b/app/controllers/users/morceaux.php index ba58bda..abd7e2c 100644 --- a/app/controllers/users/morceaux.php +++ b/app/controllers/users/morceaux.php @@ -1,10 +1,7 @@ env(); $data = $env->data(); - if(($this->status = $data->source_status()) !== false) - { foreach($this->status as $id_source_status => $source_status) - { if($source_status["nom"] == "album") $this->album_status_id = $id_source_status; - if($source_status["nom"] == "morceau") $this->morceau_status_id = $id_source_status; - if(isset($this->album_status_id) && isset($this->morceau_status_id)) break; - } - if(isset($this->album_status_id) && isset($this->morceau_status_id)) - { if($this->user = $env->user()) - { if(($this->groupes = $data->groupes($this->user["id"])) !== false){ - $env->set_out("groupes", $this->groupes); - $this->albums = array(); - if($this->groupes["total"] > 0) - { $select = array(); - $select["status"] = $this->album_status_id; - $select["id_user"] = $this->user["id"]; - foreach($this->groupes["list"] as $id_groupe => $groupe) - { $select["id_groupe"] = $id_groupe; - if(($albums = $data->sources($select)) !== false) - { $this->albums[$id_groupe] = $albums["list"]; - } - else $this->albums = false; - } - } - if($this->albums !== false) - { $env->set_out("albums", $this->albums); - if($env->etat("action") == "edit" || $env->etat("action") == "del" || $env->etat("action") == "maj_xml") - { if($this->morceau = $data->source($_GET[$env->param("id")], true)) - { - } - else return "Impossible de lire les informations du morceau"; - } - if($env->etat("action") == "add" || $env->etat("action") == "edit") - { if(($this->licences = $data->licences()) !== false) - { $env->set_out("licences", $this->licences); - } - else return "Impossible de lire la liste des licences"; - } - } - else return "Impossible de lire la liste des albums"; - } - else return "Impossible de lire la liste des groupes"; - } - else return "Vous devez être identifier pour accéder à cette page"; - } - else - { if(!isset($this->album_status_id)) return "Type de source inconnu: album"; - return "Type de source inconnu: morceau"; - } + if(($this->status = $data->source_status()) === false){ + return "Impossible de lire la liste des status de source"; + } + foreach($this->status as $id_source_status => $source_status){ + if($source_status["nom"] == "album") $this->album_status_id = $id_source_status; + if($source_status["nom"] == "morceau") $this->morceau_status_id = $id_source_status; + if(isset($this->album_status_id) && isset($this->morceau_status_id)) break; + } + if(!isset($this->album_status_id) || !isset($this->morceau_status_id)){ + if(!isset($this->album_status_id)) return "Type de source inconnu: album"; + return "Type de source inconnu: morceau"; + } + if(!($this->user = $env->user())){ + return "Vous devez être identifié pour accéder à cette page"; } - else return "Impossible de lire la liste des status de source"; return true; } function index(){ $env = $this->env(); $data = $env->data(); - $select = array(); - $select["status"] = $this->morceau_status_id; - $select["id_user"] = $this->user["id"]; - $select["order_by"] = "ordre"; - $select["start"] = isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0; - if(isset($_GET[$env->param("groupe")]) && $_GET[$env->param("groupe")]) $select["id_groupe"] = $_GET[$env->param("groupe")]; - if(isset($_GET[$env->param("album")])) $select["id_composition"] = $_GET[$env->param("album")]; - if(($morceaux = $data->sources($select)) !== false) - { foreach($morceaux["list"] as $id_morceau => $morceau) - { $morceaux["list"][$id_morceau]["permissions"] = $data->source_permissions($morceau, $this->user["id"]); + if(($groupes = $data->groupes($this->user["id"])) === false){ + $env->erreur("Impossible de lire la liste des groupes"); + return; + } + $albums_groupes = $groupes["list"]; + $id_groupe = false; + if(isset($_GET[$env->param("groupe")])){ + $id_groupe = $_GET[$env->param("groupe")]; + if(!isset($groupes["list"][$id_groupe])){ + $env->erreur("Impossible de lire les informations du groupe"); + return; } - if($_POST) - { $OK = true; - foreach($morceaux["list"] as $id_morceau => $morceau) - { if(isset($_POST["ordre_".$id_morceau])) - { if($data->set_source_info($morceau["id"], "ordre", $_POST["ordre_".$id_morceau]) === false) - { $OK = false; - break; - } + } + if($id_groupe){ + $albums_groupes = array($id_groupe => $groupes["list"][$id_groupe]); + } + if( + ( + $albums = $data->groupes_sources( + array( + "groupes" => $albums_groupes, + "id_class" => $this->album_status_id, + // on veut les albums pour lesquels au moins un groupe (et pas tous) ... + "satisfy_all_groupes_access" => false, + // ... a le droit de contribution + "id_source_access" => $data->id_groupe_status_contributeur() + ) + ) + ) === false + ) return "impossible de lire la liste des albums"; + if($id_album = isset($_GET[$env->param("album")]) ? $_GET[$env->param("album")] : false){ + if(!($album = $data->source($id_album, true))){ + $env->erreur("Impossible de lire les informations de l'album"); + return; + } + } + $select = array( + "status" => $this->morceau_status_id, + "id_user" => $this->user["id"], + "order_by" => "ordre", + "start" => isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0 + ); + if($id_groupe) $select["id_groupe"] = $id_groupe; + if($id_album !== false) $select["id_composition"] = $id_album; + if(($morceaux = $data->sources($select)) === false){ + $env->erreur("impossible de lire la liste des morceaux"); + return; + } + foreach($morceaux["list"] as $id_morceau => $morceau){ + $morceaux["list"][$id_morceau]["permissions"] = $data->source_permissions($morceau, $this->user["id"]); + } + if($_POST){ + foreach($morceaux["list"] as $id_morceau => $morceau){ + if(isset($_POST["ordre_".$id_morceau])){ + if($data->set_source_info($morceau["id"], "ordre", $_POST["ordre_".$id_morceau]) === false){ + $env->erreur("Impossible d'enregistrer l'ordre des morceaux"); + return; } } - if($OK) - { $get_params = array(); - if(isset($_GET[$env->param("groupe")]) && $_GET[$env->param("groupe")]) $get_params["groupe"] = $_GET[$env->param("groupe")]; - if(isset($_GET[$env->param("album")]) && $_GET[$env->param("album")]) $get_params["album"] = $_GET[$env->param("album")]; - $env->redirect - ( $env->url("users/morceaux", $get_params), - "l'ordre des morceaux a été enregistré" - ); - } - else $env->erreur("Impossible d'enregistrer l'ordre des morceaux"); } - $env->set_out("groupes", $this->groupes); - $env->set_out("albums", $this->albums); - $env->set_out("morceaux", $morceaux); + $get_params = array(); + if($id_groupe) $get_params["groupe"] = $id_groupe; + if($id_album) $get_params["album"] = $id_album; + $env->redirect( + $env->url("users/morceaux", $get_params), + "l'ordre des morceaux a été enregistré" + ); } - else $env->erreur("Impossible de lire la liste des morceaux"); + $env->set_out("groupes", $groupes); + $env->set_out("albums", $albums); + $env->set_out("morceaux", $morceaux); } function add(){ $env = $this->env(); $data = $env->data(); - if($data->check_user_uploads_dir()) - { $web_path = $env->path("web"); - $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$env->path("content")."uploads/".$this->user["id"]; - $this->morceau = $data->empty_source(); - $users_sources_mod = $env->get_controller("users/sources"); - $source_infos = array - ( "date_inscription" => date("Y")."-".date("m")."-".date("d"), - "ordre" => 0 + $morceau = $data->empty_source(); + $source_infos = array( + "date_inscription" => date("Y-m-d"), + "ordre" => 0 + ); + $groupe = false; + $album = false; + if(($groupes = $data->groupes($this->user["id"])) === false){ + $env->erreur("Impossible de lire la liste des groupes"); + return; + } + $albums = array(); + if($groupes["total"] > 0){ + $select = array( + "status" => $this->album_status_id, + "id_user" => $this->user["id"] ); - if($_POST) - { if(($groupe = $data->groupe($_POST["id_groupe"])) !== false) - { $groupe["id_groupe_status"] = $data->id_groupe_status_admin(); - $this->morceau["groupes"] = array($groupe["id"] => $groupe); - if($_POST["album"]) - { if($album = $data->source($_POST["album"], true)) - { $album["permissions"] = $data->source_permissions($album, $this->user["id"]); - if(!$album["permissions"]["contributeur"]) - { $env->erreur("vous n'avez pas la permission d'ajouter un morceau dans cet album"); - return; - } - } - else - { $env->erreur("impossible de lire les informations de l'album"); - return; - } - $this->morceau["album"] = $_POST["album"]; - } - if($_POST["is_derivation"]) - { foreach($_POST as $key => $value) - { if(substr($key, 0, 14) == "derivation_id_") - { $id_source_derivation = substr($key, 14); - $xml_url = trim($_POST["derivation_".$id_source_derivation]); - $this->morceau["derivations"][$id_source_derivation] = $users_sources_mod->get_source_from_xml - ( $env, - $xml_url, - ( $_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 - ); - } - } - } - if($_POST["is_reference"]) - { $xml_url = trim($_POST["reference"]); - $this->morceau["reference"] = $users_sources_mod->get_source_from_xml - ( $env, + foreach($groupes["list"] as $id_groupe => $groupe){ + $select["id_groupe"] = $id_groupe; + if(($groupes_albums = $data->sources($select)) === false){ + $env->erreur("impossible de lire la liste des albums"); + return; + } + $albums[$id_groupe] = $groupes_albums["list"]; + } + } + if(($licences = $data->licences()) === false){ + return "Impossible de lire la liste des licences"; + } + if(!$data->check_user_uploads_dir()){ + $env->erreur("Impossible de creer le repertoire utilisateur"); + return; + } + $web_path = $env->path("web"); + $_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(!($groupe = $data->groupe($_POST["id_groupe"]))){ + $env->erreur("Impossible de lire les informations du groupe"); + return; + } + $groupe["id_groupe_status"] = $data->id_groupe_status_admin(); + $morceau["groupes"] = array($groupe["id"] => $groupe); + if($_POST["album"]){ + if(!($album = $data->source($_POST["album"], true))){ + $env->erreur("Impossible de lire les informations de l'album"); + return; + } + $album["permissions"] = $data->source_permissions($album, $this->user["id"]); + if(!$album["permissions"]["contributeur"]){ + $env->erreur("vous n'avez pas la permission d'ajouter un morceau dans cet album"); + return; + } + $morceau["album"] = $album["id"]; + } + if(isset($_POST["is_derivation"])){ + foreach($_POST as $key => $value){ + if(substr($key, 0, 14) == "derivation_id_"){ + $id_source_derivation = substr($key, 14); + $xml_url = trim($_POST["derivation_".$id_source_derivation]); + $morceau["derivations"][$id_source_derivation] = $users_sources_mod->get_source_from_xml( + $env, $xml_url, - ( $_POST["use_edit_reference_content"] ? - $_POST["edit_reference_content"] + ( + $_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_reference_content"] ? true : false + $_POST["use_edit_derivation_content_".$id_source_derivation] ? true : false ); } - else - { if($this->morceau["titre"] = trim($_POST["titre"])) - { $this->morceau["licence"] = array - ( "id" => $_POST["licence"] + } + } + if(isset($_POST["is_reference"])){ + $xml_url = trim($_POST["reference"]); + $morceau["reference"] = $users_sources_mod->get_source_from_xml( + $env, + $xml_url, + ( + $_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 + ); + } + else{ + if(!($morceau["titre"] = trim($_POST["titre"]))){ + $env->message("merci de préciser un titre pour le morceau"); + } + $morceau["licence"] = array( + "id" => $_POST["licence"] + ); + $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; + $source_infos["description"] = $_POST["description"]; + foreach($_POST as $post_key => $post_value){ + if(substr($post_key, 0, 13) == "document_nom_"){ + if($id_document = substr($post_key, 13)){ + $morceau["documents"][$id_document] = array( + "nom" => $_POST["document_nom_".$id_document], + "url" => $_POST["document_url_".$id_document] ); - $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; - $source_infos["description"] = $_POST["description"]; - foreach($_POST as $post_key => $post_value) - { if(substr($post_key, 0, 13) == "document_nom_") - { if($id_document = substr($post_key, 13)) - { $this->morceau["documents"][$id_document] = array - ( "nom" => $_POST["document_nom_".$id_document], - "url" => $_POST["document_url_".$id_document] - ); - } - } - } } - else $env->message("merci de préciser un titre pour le morceau"); } - if(!$env->out("messages") && !$env->out("erreur")) - { if - ( ( $id_source = $data->add_source - ( $this->morceau["groupes"], - $this->morceau["titre"], - $this->morceau_status_id, - $this->morceau["licence"]["id"], - $this->morceau["documents"], - $this->morceau["reference"], - $this->morceau["derivations"], - $source_infos - ) - ) !== false + } + } + if(!$env->messages()){ + if( + ( + $id_source = $data->add_source( + $morceau["groupes"], + $morceau["titre"], + $this->morceau_status_id, + $morceau["licence"]["id"], + $morceau["documents"], + $morceau["reference"], + $morceau["derivations"], + $source_infos ) - { if($_POST["album"]) - { if($data->set_source_composition($id_source, $_POST["album"])) - { $env->redirect - ( $env->url("users/morceaux"), - "le morceau a été ajouté" - ); - } - else $env->erreur("Le morceau a été ajouté mais impossible de l'associer à cet album"); - } - else $env->redirect - ( $env->url("users/morceaux"), - "le morceau a été ajouté" - ); - } - else $env->erreur("Impossible d'ajouter le morceau"); + ) === false + ){ + $env->erreur("Impossible d'ajouter le morceau"); + return; + } + if($album){ + if(!$data->set_source_composition($id_source, $album["id"])){ + $env->erreur("Le morceau a été ajouté mais impossible de l'associer à l'album"); + return; } } - else $env->erreur("Impossible de lire les informations du groupe"); + $env->redirect( + $env->url("users/morceaux"), + "le morceau a été ajouté" + ); } - $env->set_out("morceau", $this->morceau); } - else $env->erreur("Impossible de creer le repertoire utilisateur"); + $env->set_out("groupes", $groupes); + $env->set_out("albums", $albums); + $env->set_out("licences", $licences); + $env->set_out("morceau", $morceau); + $env->set_out("source_infos", $source_infos); + $env->set_out("groupe", $groupe); + $env->set_out("album", $album); } function edit(){ $env = $this->env(); $data = $env->data(); - $this->morceau["premissions"] = $data->source_permissions($this->morceau, $this->user["id"]); - if(!$this->morceau["premissions"]["editeur"]) - { $env->erreur("vous n'avez la permission d'editer ce morceau"); + if(($groupes = $data->groupes($this->user["id"])) === false){ + $env->erreur("Impossible de lire la liste des groupes"); return; } - if($data->check_user_uploads_dir()) - { $web_path = $env->path("web"); - $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$env->path("content")."uploads/".$this->user["id"]; - if(($compositions = $data->source_compositions(array("id_source" => $this->morceau["id"]))) !== false) - { if($compositions) foreach($compositions[$this->morceau["id"]] as $id_album) { $this->morceau["album"] = $id_album; break; } - $env->set_out("groupe", $data->get_admin_groupe($this->morceau["groupes"])); - if($_POST) - { $source_infos = array - ( "date_inscription" => $_POST["date_inscription"], - "ordre" => isset($this->morceau["ordre"]) ? $this->morceau["ordre"] : 0 - ); - $this->morceau = $data->empty_source(array("id" => $this->morceau["id"])); - $users_sources_mod = $env->get_controller("users/sources"); - if(!($groupe = $data->groupe($_POST["id_groupe"]))) - { $env->erreur("Impossible de lire les informations du groupe"); + if(($licences = $data->licences()) === false){ + $env->erreur("Impossible de lire la liste des licences"); + return; + } + if(($sources_access = $data->sources_access()) === false){ + $env->erreur("Impossible de lire les types d'access"); + return; + } + if(!($morceau = $data->source($_GET[$env->param("id")], true))){ + $env->erreur("Impossible de lire les informations du morceau"); + return; + } + $morceau["permissions"] = $data->source_permissions($morceau, $this->user["id"]); + if(!$morceau["permissions"]["editeur"]){ + $env->erreur("vous n'avez pas la permission d'editer ce morceau"); + return; + } + if( + ( + $albums = $data->groupes_sources( + array( + "groupes" => $morceau["groupes"], + "id_class" => $this->album_status_id, + // on veut les albums pour lesquels chaque groupe du morceau ... + "satisfy_all_groupes_access" => true, + // ... a le droit de contribution + "id_source_access" => $data->id_groupe_status_contributeur() + ) + ) + ) === false + ) return "impossible de lire la liste des albums"; + if(!$data->check_user_uploads_dir()){ + $env->erreur("Impossible de creer le repertoire utilisateur"); + return; + } + $web_path = $env->path("web"); + $_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($_POST){ + $source_infos = array( + "date_inscription" => $_POST["date_inscription"], + "ordre" => isset($morceau["ordre"]) ? $morceau["ordre"] : 0 + ); + $morceau = $data->empty_source( + array( + "id" => $morceau["id"], + "groupes" => $morceau["groupes"] + ) + ); + $users_sources_mod = $env->get_controller("users/sources"); + if($_POST["album"]){ + if($album = $data->source($_POST["album"], true)){ + $album["permissions"] = $data->source_permissions($album, $this->user["id"]); + if(!$album["permissions"]["contributeur"]){ + $env->erreur("vous n'avez pas la permission d'ajouter un morceau dans cet album"); return; } - $env->set_out("groupe", $groupe); - $groupe["id_groupe_status"] = $data->id_groupe_status_admin(); - $this->morceau["groupes"] = array($groupe["id"] => $groupe); - $this->morceau["derivations"] = array(); - if($_POST["album"]) - { if($album = $data->source($_POST["album"], true)) - { $album["permissions"] = $data->source_permissions($album, $this->user["id"]); - if(!$album["permissions"]["contributeur"]) - { $env->erreur("vous n'avez pas la permission d'ajouter un morceau dans cet album"); - return; - } - } - else - { $env->erreur("Impossible de lire les informations de l'album"); - return; - } - $this->morceau["album"] = $_POST["album"]; - } - if($_POST["is_derivation"]) - { foreach($_POST as $key => $value) - { if(substr($key, 0, 14) == "derivation_id_") - { $id_source_derivation = substr($key, 14); - $xml_url = trim($_POST["derivation_".$id_source_derivation]); - $this->morceau["derivations"][$id_source_derivation] = $users_sources_mod->get_source_from_xml - ( $env, - $xml_url, - ( $_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 - ); - } - } - } - if($_POST["is_reference"]) - { $xml_url = trim($_POST["reference"]); - $this->morceau["reference"] = $users_sources_mod->get_source_from_xml - ( $env, + } + else{ + $env->erreur("Impossible de lire les informations de l'album"); + return; + } + $morceau["album"] = $album["id"]; + } + if(isset($_POST["is_derivation"])){ + foreach($_POST as $key => $value){ + if(substr($key, 0, 14) == "derivation_id_"){ + $id_source_derivation = substr($key, 14); + $xml_url = trim($_POST["derivation_".$id_source_derivation]); + $morceau["derivations"][$id_source_derivation] = $users_sources_mod->get_source_from_xml( + $env, $xml_url, - ( $_POST["use_edit_reference_content"] ? - $_POST["edit_reference_content"] + ( + $_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_reference_content"] ? true : false + $_POST["use_edit_derivation_content_".$id_source_derivation] ? true : false ); } - else - { if($this->morceau["titre"] = trim($_POST["titre"])) - { $this->morceau["licence"] = array - ( "id" => $_POST["licence"] + } + } + if(isset($_POST["is_reference"])){ + $xml_url = trim($_POST["reference"]); + $morceau["reference"] = $users_sources_mod->get_source_from_xml( + $env, + $xml_url, + ( + $_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 + ); + } + else{ + if(!($morceau["titre"] = trim($_POST["titre"]))){ + $env->message("merci de préciser un titre pour le morceau"); + } + $morceau["licence"] = array( + "id" => $_POST["licence"] + ); + $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; + $source_infos["description"] = $_POST["description"]; + foreach($_POST as $post_key => $post_value){ + if(substr($post_key, 0, 13) == "document_nom_"){ + if($id_document = substr($post_key, 13)){ + $morceau["documents"][$id_document] = array( + "nom" => $_POST["document_nom_".$id_document], + "url" => $_POST["document_url_".$id_document] ); - $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; - $source_infos["description"] = $_POST["description"]; - foreach($_POST as $post_key => $post_value) - { if(substr($post_key, 0, 13) == "document_nom_") - { if($id_document = substr($post_key, 13)) - { $this->morceau["documents"][$id_document] = array - ( "nom" => $_POST["document_nom_".$id_document], - "url" => $_POST["document_url_".$id_document] - ); - } - } - } } - else $env->message("merci de préciser un titre pour le morceau"); } - if(!$env->out("messages") && !$env->out("erreur")) - { if - ( ( $data->set_source - ( $this->morceau["id"], - $this->morceau["groupes"], - $this->morceau["titre"], - $this->morceau_status_id, - $this->morceau["licence"]["id"], - $this->morceau["documents"], - $this->morceau["reference"], - $this->morceau["derivations"], - $source_infos - ) - ) !== false + } + } + if(!$env->messages()){ + if( + ( + $data->set_source( + $morceau["id"], + $morceau["groupes"], + $morceau["titre"], + $this->morceau_status_id, + $morceau["licence"]["id"], + $morceau["documents"], + $morceau["reference"], + $morceau["derivations"], + $source_infos ) - { if($data->del_source_compositions(array("id_source" => $this->morceau["id"]))) - { if($_POST["album"]) - { if($data->set_source_composition($this->morceau["id"], $_POST["album"])) - { $env->redirect - ( $env->url("users/morceaux/edit", array("id" => $this->morceau["id"])), - "le morceau a été modifié" - ); - } - else $env->erreur("Le morceau a été modifié mais impossible de l'associer à cet album"); - } - else $env->redirect - ( $env->url("users/morceaux/edit", array("id" => $this->morceau["id"])), - "le morceau a été modifié" - ); - } - else $env->erreur("Le morceau a été modifié mais impossible de l'associer à cet album"); - } - else $env->erreur("Impossible de modifier le morceau"); + ) === false + ){ + $env->erreur("Impossible de modifier le morceau"); + return; + } + if(!$data->del_source_compositions(array("id_source" => $morceau["id"]))){ + $env->erreur("Le morceau a été modifié mais impossible de l'associer à cet album"); + return; + } + if($_POST["album"]){ + if(!$data->set_source_composition($morceau["id"], $_POST["album"])){ + $env->erreur("Le morceau a été modifié mais impossible de l'associer à cet album"); + return; } } + $env->redirect( + $env->url("users/morceaux/edit", array("id" => $morceau["id"])), + "le morceau a été modifié" + ); } - else $env->erreur("Impossible de lire la liste des compositions"); - $env->set_out("morceau", $this->morceau); } - else $env->erreur("Impossible de creer le repertoire utilisateur"); + $env->set_out("groupes", $groupes); + $env->set_out("sources_access", $sources_access); + $env->set_out("licences", $licences); + $env->set_out("albums", $albums); + $env->set_out("morceau", $morceau); } function maj_xml(){ $data = $env->data(); - $this->morceau["premissions"] = $data->source_permissions($this->morceau, $this->user["id"]); - if(!$this->morceau["premissions"]["editeur"]) - { $env->erreur("vous n'avez la permission d'editer ce morceau"); + if(!($morceau = $data->source($_GET[$env->param("id")], true))){ + $env->erreur("Impossible de lire les informations du morceau"); + return; + } + $morceau["permissions"] = $data->source_permissions($morceau, $this->user["id"]); + if(!$morceau["permissions"]["editeur"]){ + $env->erreur("vous n'avez pas la permission d'editer ce morceau"); return; } if ( isset($_GET[$env->param("id")]) && isset($_GET[$env->param("xml")]) && ($_GET[$env->param("xml")] == "derviation" ? isset($_GET[$env->param("derivation")]) : true) - ) - { $xml_url = ""; - if($_GET[$env->param("xml")] == "derivation") - { if(isset($this->morceau["derivations"][$_GET[$env->param("derivation")]]["xml"]["url"])) - $xml_url = $this->morceau["derivations"][$_GET[$env->param("derivation")]]["xml"]["url"]; - } - elseif($_GET[$env->param("xml")] == "reference") - { if(isset($this->morceau["reference"]["xml"]["url"])) - $xml_url = $this->morceau["reference"]["xml"]["url"]; + ){ + $env->erreur("parametre de fichier xml manquant"); + return; + } + $xml_url = ""; + if($_GET[$env->param("xml")] == "derivation"){ + if(isset($morceau["derivations"][$_GET[$env->param("derivation")]]["xml"]["url"])) + $xml_url = $morceau["derivations"][$_GET[$env->param("derivation")]]["xml"]["url"]; + } + elseif($_GET[$env->param("xml")] == "reference"){ + if(isset($morceau["reference"]["xml"]["url"])) + $xml_url = $morceau["reference"]["xml"]["url"]; + } + if(!$xml_url){ + $env->message("Pas d'URL pour ce fichier XML. Impossible de recharger les informations"); + return; + } + if(!$env->messages()){ + if(($res = $data->maj_source_cache($xml_url)) === false){ + $env->erreur("Impossible de mettre à jour le contenu du fichier XML dans le cache"); + return; } - $erreur = ""; - if($xml_url) - { if(($res = $data->maj_source_cache($xml_url)) !== false) - { if($res === true) - { if($this->morceau = $data->source($this->morceau["id"])) - { $env->redirect - ( $env->url("users/morceaux/edit", array("id" => $this->morceau["id"])), - "Les informations du fichier XML ont été mises à jour", - 2 - ); - return; - } - else $erreur = - "le contenu du fichier XML a été mis à jour" - .", mais impossible de lire les informations du morceau"; - } - else - { switch($res) - { case -1: $env->message("Impossible de lire le contenu du fichier XML"); break; - case -2: $env->message("Le fichier XML indiqué ne contient pas un fichier de source valide"); break; - default: $erreur = "Erreur inconnue (?)"; break; - } - } + if($res === true){ + if($morceau = $data->source($morceau["id"])){ + $env->redirect( + $env->url("users/morceaux/edit", array("id" => $morceau["id"])), + "Les informations du fichier XML ont été mises à jour", + 2 + ); } - else $erreur = "Impossible de mettre à jour le contenu du fichier XML dans le cache"; + else{ + $env->erreur( + "le contenu du fichier XML a été mis à jour" + .", mais impossible de lire les informations du morceau" + ); + } + return; + } + switch($res){ + case -1: $env->message("Impossible de lire le contenu du fichier XML"); break; + case -2: $env->message("Le fichier XML indiqué ne contient pas un fichier de source valide"); break; + default: $env->erreur("Erreur inconnue (?)"); return; } - else $env->message("Pas d'URL pour ce fichier XML. Impossible de recharger les informations"); - if($erreur) $env->erreur($erreur); - else $env->run("users/morceaux/edit", array("id" => $this->morceau["id"])); } - else $env->erreur("parametre de fichier xml manquant"); + $env->run("users/morceaux/edit", array("get" => array("id" => $morceau["id"]))); } function del(){ $env = $this->env(); $data = $env->data(); - $this->morceau["premissions"] = $data->source_permissions($this->morceau, $this->user["id"]); - if($this->morceau["premissions"]["admin"]) - { if($data->del_source($this->morceau["id"])) - { $env->redirect - ( $env->url("users/morceaux"), - "le morceau a été supprimé" - ); - } - else $env->erreur("Impossible de supprimer le morceau"); + if(!($morceau = $data->source($_GET[$env->param("id")], true))){ + $env->erreur("Impossible de lire les informations du morceau"); + return; + } + $morceau["permissions"] = $data->source_permissions($morceau, $this->user["id"]); + if(!$morceau["permissions"]["admin"]){ + $env->erreur("vous n'avez pas la permission d'effacer ce morceau"); + return; + } + if(!$data->del_source($morceau["id"])){ + $env->erreur("Impossible de supprimer le morceau"); + return; } - else $env->erreur("vous n'avez la permission d'effacer ce morceau"); + $env->redirect( + $env->url("users/morceaux"), + "le morceau a été supprimé" + ); } } diff --git a/app/controllers/users/pistes.php b/app/controllers/users/pistes.php index 8d3d1ea..0ef6007 100644 --- a/app/controllers/users/pistes.php +++ b/app/controllers/users/pistes.php @@ -1,11 +1,7 @@ env(); $data = $env->data(); - if(($this->status = $data->source_status()) !== false) - { foreach($this->status as $id_source_status => $source_status) - { if($source_status["nom"] == "album") $this->album_status_id = $id_source_status; - if($source_status["nom"] == "morceau") $this->morceau_status_id = $id_source_status; - if($source_status["nom"] == "piste") $this->piste_status_id = $id_source_status; - if(isset($this->album_status_id) && isset($this->morceau_status_id) && isset($this->piste_status_id)) break; - } - if(isset($this->album_status_id) && isset($this->morceau_status_id) && isset($this->piste_status_id)) - { if($this->user = $env->user()) - { if(($this->groupes = $data->groupes($this->user["id"])) !== false) - { $env->set_out("groupes", $this->groupes); - $this->albums = array(); - $this->morceaux = array(); - if($this->groupes["total"] > 0) - { foreach($this->groupes["list"] as $id_groupe => $groupe) - { $this->albums[$id_groupe] = array(); - $select = array - ( "status" => $this->album_status_id, - "id_user" => $this->user["id"], - "id_groupe" => $id_groupe - ); - if(($albums = $data->sources($select)) !== false) - { $this->albums[$id_groupe] = $albums["list"]; - } - else - { $this->albums = false; - break; - } - - $this->morceaux[$id_groupe] = array(); - $select = array - ( "status" => $this->morceau_status_id, - "id_user" => $this->user["id"], - "id_groupe" => $id_groupe - ); - if(($morceaux = $data->sources($select)) !== false) - { foreach($morceaux["list"] as $id_morceau => $morceau) - { if(($compositions = $data->source_compositions(array("id_source" => $id_morceau))) !== false) - { if($compositions) foreach($compositions[$id_morceau] as $_id_album) { $morceaux["list"][$id_morceau]["album"] = $_id_album; break; } - if(!isset($morceaux["list"][$id_morceau]["album"])) $morceaux["list"][$id_morceau]["album"] = 0; - } - else - { $this->morceaux = false; - break; - } - } - if($this->morceaux !== false) - { foreach($morceaux["list"] as $id_morceau => $morceau) - { if(!isset($this->morceaux[$id_groupe][$morceau["album"]])) $this->morceaux[$id_groupe][$morceau["album"]] = array(); - $this->morceaux[$id_groupe][$morceau["album"]][$id_morceau] = $morceau; - } - } - } - else - { $this->morceaux = false; - break; - } - if($this->morceaux === false) break; - } - } - if($this->albums !== false && $this->morceaux !== false) - { $env->set_out("albums", $this->albums); - $env->set_out("morceaux", $this->morceaux); - if($env->etat("action") == "edit" || $env->etat("action") == "del" || $env->etat("action") == "maj_xml") - { if(($this->piste = $data->source($_GET[$env->param("id")], true)) !== false && $this->piste) - { - } - else return "Impossible de lire les informations de la source"; - } - if($env->etat("action") == "add" || $env->etat("action") == "edit") - { if(($this->licences = $data->licences()) !== false) - { $env->set_out("licences", $this->licences); - } - else return "Impossible de lire la liste des licences"; - } - } - else return "Impossible de lire la liste des albums"; - } - else return "Impossible de lire la liste des groupes"; - } - else return "Vous devez être identifier pour accéder à cette page"; - } - else - { if(!isset($this->album_status_id)) return "Type de source inconnu: album"; - return "Type de source inconnu: morceau"; - } + if(($this->status = $data->source_status()) === false){ + return "Impossible de lire la liste des status de source"; + } + foreach($this->status as $id_source_status => $source_status){ + if($source_status["nom"] == "album") $this->album_status_id = $id_source_status; + if($source_status["nom"] == "morceau") $this->morceau_status_id = $id_source_status; + if($source_status["nom"] == "piste") $this->piste_status_id = $id_source_status; + if(isset($this->album_status_id) && isset($this->morceau_status_id) && isset($this->piste_status_id)) break; + } + if( + !isset($this->album_status_id) + || !isset($this->morceau_status_id) + || !isset($this->piste_status_id) + ){ + return "liste des status de source incomplète"; + } + if(!($this->user = $env->user())){ + return "Vous devez être identifié pour accéder à cette page"; } - else return "Impossible de lire la liste des status de source"; return true; } function index(){ $env = $this->env(); $data = $env->data(); - $select = array(); - $select["status"] = $this->piste_status_id; - $select["id_user"] = $this->user["id"]; - $select["order_by"] = "ordre"; - if(isset($_GET[$env->param("groupe")]) && $_GET[$env->param("groupe")]) $select["id_groupe"] = $_GET[$env->param("groupe")]; - if(isset($_GET[$env->param("morceau")]) && $_GET[$env->param("morceau")]) $select["id_composition"] = $_GET[$env->param("morceau")]; - $select["start"] = isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0; - if(($pistes = $data->sources($select)) !== false) - { foreach($pistes["list"] as $id_piste => $piste) - { $pistes["list"][$id_piste]["permissions"] = $data->source_permissions($piste, $this->user["id"]); + if(($groupes = $data->groupes($this->user["id"])) === false){ + $env->erreur("Impossible de lire la liste des groupes"); + return; + } + $morceaux_groupes = $groupes["list"]; + $id_groupe = false; + if(isset($_GET[$env->param("groupe")])){ + $id_groupe = $_GET[$env->param("groupe")]; + if(!isset($groupes["list"][$id_groupe])){ + $env->erreur("Impossible de lire les informations du groupe"); + return; } - if($_POST) - { $OK = true; - foreach($pistes["list"] as $id_piste => $piste) - { if(isset($_POST["ordre_".$id_piste])) - { if($data->set_source_info($piste["id"], "ordre", $_POST["ordre_".$id_piste]) === false) - { $OK = false; - break; - } + } + if($id_groupe){ + $morceaux_groupes = array($id_groupe => $groupes["list"][$id_groupe]); + } + if( + ( + $morceaux = $data->groupes_sources( + array( + "groupes" => $morceaux_groupes, + "id_class" => $this->morceau_status_id, + // on veut les morceaux pour lesquels au moins un groupe (et pas tous) ... + "satisfy_all_groupes_access" => false, + // ... a le droit de contribution + "id_source_access" => $data->id_groupe_status_contributeur() + ) + ) + ) === false + ) return "impossible de lire la liste des morceaux"; + if($id_morceau = isset($_GET[$env->param("morceau")]) ? $_GET[$env->param("morceau")] : false){ + if(!($morceau = $data->source($id_morceau, true))){ + $env->erreur("Impossible de lire les informations du morceau"); + return; + } + } + $select = array( + "status" => $this->piste_status_id, + "id_user" => $this->user["id"], + "order_by" => "ordre", + "start" => isset($_GET[$env->param("start")]) && $_GET[$env->param("start")] ? $_GET[$env->param("start")] : 0 + ); + if($id_groupe) $select["id_groupe"] = $id_groupe; + if($id_morceau !== false) $select["id_composition"] = $id_morceau; + if(($pistes = $data->sources($select)) === false){ + $env->erreur("impossible de lire la liste des pistes"); + return; + } + foreach($pistes["list"] as $id_piste => $piste){ + $pistes["list"][$id_piste]["permissions"] = $data->source_permissions($piste, $this->user["id"]); + } + if($_POST){ + foreach($pistes["list"] as $id_piste => $piste){ + if(isset($_POST["ordre_".$id_piste])){ + if($data->set_source_info($piste["id"], "ordre", $_POST["ordre_".$id_piste]) === false){ + $env->erreur("Impossible d'enregistrer l'ordre des pistes"); + return; } } - if($OK) - { $get_params = array(); - if(isset($_GET[$env->param("groupe")]) && $_GET[$env->param("groupe")]) $get_params["groupe"] = $_GET[$env->param("groupe")]; - if(isset($_GET[$env->param("morceau")]) && $_GET[$env->param("morceau")]) $get_params["morceau"] = $_GET[$env->param("morceau")]; - $env->redirect - ( $env->url("users/pistes", $get_params), - "l'ordre des sources a été enregistré" - ); - } - else $env->erreur("Impossible d'enregistrer l'ordre des sources"); } - $env->set_out("pistes", $pistes); + $get_params = array(); + if($id_groupe) $get_params["groupe"] = $id_groupe; + if($id_morceau) $get_params["morceau"] = $id_morceau; + $env->redirect( + $env->url("users/pistes", $get_params), + "l'ordre des pistes a été enregistré" + ); } - else $env->erreur("Impossible de lire la liste des sources"); + $env->set_out("groupes", $groupes); + $env->set_out("morceaux", $morceaux); + $env->set_out("pistes", $pistes); } function add(){ $env = $this->env(); $data = $env->data(); - if($data->check_user_uploads_dir()) - { $web_path = $env->path("web"); - $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$env->path("content")."uploads/".$this->user["id"]; - $this->piste = $data->empty_source(); - $users_sources_mod = $env->get_controller("users/sources"); - $source_infos = array - ( "date_inscription" => date("Y")."-".date("m")."-".date("d"), - "ordre" => 0 + $piste = $data->empty_source(); + $source_infos = array( + "date_inscription" => date("Y-m-d"), + "ordre" => 0 + ); + $groupe = false; + $morceau = false; + if(($groupes = $data->groupes($this->user["id"])) === false){ + $env->erreur("Impossible de lire la liste des groupes"); + return; + } + $morceaux = array(); + if($groupes["total"] > 0){ + $select = array( + "status" => $this->morceau_status_id, + "id_user" => $this->user["id"] ); - if($_POST) - { if(($groupe = $data->groupe($_POST["id_groupe"])) !== false) - { $groupe["id_groupe_status"] = $data->id_groupe_status_admin(); - $this->piste["groupes"] = array($groupe["id"] => $groupe); - $env->set_out("groupe", $groupe); + foreach($groupes["list"] as $id_groupe => $groupe){ + $select["id_groupe"] = $id_groupe; + if(($groupes_morceaux = $data->sources($select)) === false){ + $env->erreur("impossible de lire la liste des morceaux"); + return; + } + $morceaux[$id_groupe] = $groupes_morceaux["list"]; + } + } + if(($licences = $data->licences()) === false){ + return "Impossible de lire la liste des licences"; + } + if(!$data->check_user_uploads_dir()){ + $env->erreur("Impossible de creer le repertoire utilisateur"); + return; + } + $web_path = $env->path("web"); + $_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(!($groupe = $data->groupe($_POST["id_groupe"]))){ + $env->erreur("Impossible de lire les informations du groupe"); + return; + } + $groupe["id_groupe_status"] = $data->id_groupe_status_admin(); + $piste["groupes"] = array($groupe["id"] => $groupe); + if($_POST["morceau"]){ + if(!($morceau = $data->source($_POST["morceau"], true))){ + $env->erreur("Impossible de lire les informations du morceau"); + return; } - else - { $env->erreur("Impossible de lire les informations du groupe"); + $morceau["permissions"] = $data->source_permissions($morceau, $this->user["id"]); + if(!$morceau["permissions"]["contributeur"]){ + $env->erreur("vous n'avez pas la permission d'ajouter une piste dans ce morceau"); return; } - if($_POST["morceau"]) - { if($morceau = $data->source($_POST["morceau"], true)) - { $morceau["permissions"] = $data->source_permissions($morceau, $this->user["id"]); - if(!$morceau["permissions"]["contributeur"]) - { $env->erreur("vous n'avez pas la permission d'ajouter une source dans ce morceau"); - return; - } - } - else - { $env->erreur("impossible de lire les informations du morceau"); - return; + $piste["morceau"] = $morceau["id"]; + } + if(isset($_POST["is_derivation"])){ + foreach($_POST as $key => $value){ + if(substr($key, 0, 14) == "derivation_id_"){ + $id_source_derivation = substr($key, 14); + $xml_url = trim($_POST["derivation_".$id_source_derivation]); + $piste["derivations"][$id_source_derivation] = $users_sources_mod->get_source_from_xml( + $env, + $xml_url, + ( + $_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 + ); } - $this->piste["morceau"] = $_POST["morceau"]; } - if(isset($_POST["is_derivation"])) - { foreach($_POST as $key => $value) - { if(substr($key, 0, 14) == "derivation_id_") - { $id_source_derivation = substr($key, 14); - $xml_url = trim($_POST["derivation_".$id_source_derivation]); - $this->piste["derivations"][$id_source_derivation] = $users_sources_mod->get_source_from_xml - ( $env, - $xml_url, - ( $_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 + } + if(isset($_POST["is_reference"])){ + $xml_url = trim($_POST["reference"]); + $piste["reference"] = $users_sources_mod->get_source_from_xml( + $env, + $xml_url, + ( + $_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 + ); + } + else{ + if(!($piste["titre"] = trim($_POST["titre"]))){ + $env->message("merci de préciser un titre pour la piste"); + } + $piste["licence"] = array( + "id" => $_POST["licence"] + ); + $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; + $source_infos["description"] = $_POST["description"]; + foreach($_POST as $post_key => $post_value){ + if(substr($post_key, 0, 13) == "document_nom_"){ + if($id_document = substr($post_key, 13)){ + $piste["documents"][$id_document] = array( + "nom" => $_POST["document_nom_".$id_document], + "url" => $_POST["document_url_".$id_document] ); } } } - if(isset($_POST["is_reference"])) - { $xml_url = trim($_POST["reference"]); - $this->piste["reference"] = $users_sources_mod->get_source_from_xml - ( $env, - $xml_url, - ( $_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 - ); - } - else - { if($this->piste["titre"] = trim($_POST["titre"])) - { $this->piste["licence"] = array - ( "id" => $_POST["licence"] - ); - $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; - $source_infos["description"] = $_POST["description"]; - foreach($_POST as $post_key => $post_value) - { if(substr($post_key, 0, 13) == "document_nom_") - { if($id_document = substr($post_key, 13)) - { $this->piste["documents"][$id_document] = array - ( "nom" => $_POST["document_nom_".$id_document], - "url" => $_POST["document_url_".$id_document] - ); - } - } - } - } - else $env->message("merci de préciser un titre pour la source"); + } + if(!$env->messages()){ + if( + ( + $id_source = $data->add_source( + $piste["groupes"], + $piste["titre"], + $this->piste_status_id, + $piste["licence"]["id"], + $piste["documents"], + $piste["reference"], + $piste["derivations"], + $source_infos + ) + ) === false + ){ + $env->erreur("Impossible d'ajouter la piste"); + return; } - if(!$env->out("messages") && !$env->out("erreur")) - { if - ( ( $id_source = $data->add_source - ( $this->piste["groupes"], - $this->piste["titre"], - $this->piste_status_id, - $this->piste["licence"]["id"], - $this->piste["documents"], - $this->piste["reference"], - $this->piste["derivations"], - $source_infos - ) - ) !== false - ) - { if($_POST["morceau"]) - { if($data->set_source_composition($id_source, $_POST["morceau"])) - { $env->redirect - ( $env->url("users/pistes"), - "la source a été ajoutée" - ); - } - else $env->erreur("La source a été ajoutée mais impossible de l'associer à ce morceau"); - } - else $env->redirect - ( $env->url("users/pistes"), - "la source a été ajoutée" - ); + if($morceau){ + if(!$data->set_source_composition($id_source, $morceau["id"])){ + $env->erreur("La piste a été ajoutée mais impossible de l'associer au morceau"); + return; } - else $env->erreur("Impossible d'ajouter la source"); } + $env->redirect( + $env->url("users/pistes"), + "la piste a été ajoutée" + ); } - $env->set_out("piste", $this->piste); } - else $env->erreur("Impossible de creer le repertoire utilisateur"); + $env->set_out("groupes", $groupes); + $env->set_out("morceaux", $morceaux); + $env->set_out("licences", $licences); + $env->set_out("piste", $piste); + $env->set_out("source_infos", $source_infos); + $env->set_out("groupe", $groupe); + $env->set_out("morceau", $morceau); } function edit(){ $env = $this->env(); $data = $env->data(); - $this->piste["premissions"] = $data->source_permissions($this->piste, $this->user["id"]); - if(!$this->piste["premissions"]["editeur"]) - { $env->erreur("vous n'avez la permission d'editer cette source"); + if(($groupes = $data->groupes($this->user["id"])) === false){ + $env->erreur("Impossible de lire la liste des groupes"); return; } - if($data->check_user_uploads_dir()) - { $web_path = $env->path("web"); - $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$env->path("content")."uploads/".$this->user["id"]; - if(($compositions = $data->source_compositions(array("id_source" => $this->piste["id"]))) !== false) - { if($compositions) foreach($compositions[$this->piste["id"]] as $id_morceau) { $this->piste["morceau"] = $id_morceau; break; } - $env->set_out("groupe", $data->get_admin_groupe($this->piste["groupes"])); - if($_POST) - { $source_infos = array - ( "date_inscription" => $_POST["date_inscription"], - "ordre" => isset($this->piste["ordre"]) ? $this->piste["ordre"] : 0 - ); - $this->piste = $data->empty_source(array("id" => $this->piste["id"])); - $users_sources_mod = $env->get_controller("users/sources"); - if(!($groupe = $data->groupe($_POST["id_groupe"]))) - { $env->erreur("Impossible de lire les informations du groupe"); + if(($licences = $data->licences()) === false){ + $env->erreur("Impossible de lire la liste des licences"); + return; + } + if(($sources_access = $data->sources_access()) === false){ + $env->erreur("Impossible de lire les types d'access"); + return; + } + if(!($piste = $data->source($_GET[$env->param("id")], true))){ + $env->erreur("Impossible de lire les informations de la piste"); + return; + } + $piste["permissions"] = $data->source_permissions($piste, $this->user["id"]); + if(!$piste["permissions"]["editeur"]){ + $env->erreur("vous n'avez pas la permission d'editer cette piste"); + return; + } + if( + ( + $morceaux = $data->groupes_sources( + array( + "groupes" => $piste["groupes"], + "id_class" => $this->morceau_status_id, + // on veut les morceaux pour lesquels chaque groupe du morceau ... + "satisfy_all_groupes_access" => true, + // ... a le droit de contribution + "id_source_access" => $data->id_groupe_status_contributeur() + ) + ) + ) === false + ) return "impossible de lire la liste des morceaux"; + if(!$data->check_user_uploads_dir()){ + $env->erreur("Impossible de creer le repertoire utilisateur"); + return; + } + $web_path = $env->path("web"); + $_SESSION["upload_dir"] = $web_path.($web_path ? "" : "/").$env->path("content")."uploads/".$this->user["id"]; + if(($compositions = $data->source_compositions(array("id_source" => $piste["id"]))) === false){ + $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($_POST){ + $source_infos = array( + "date_inscription" => $_POST["date_inscription"], + "ordre" => isset($piste["ordre"]) ? $piste["ordre"] : 0 + ); + $piste = $data->empty_source( + array( + "id" => $piste["id"], + "groupes" => $piste["groupes"] + ) + ); + $users_sources_mod = $env->get_controller("users/sources"); + if($_POST["morceau"]){ + if($morceau = $data->source($_POST["morceau"], true)){ + $morceau["permissions"] = $data->source_permissions($morceau, $this->user["id"]); + if(!$morceau["permissions"]["contributeur"]){ + $env->erreur("vous n'avez pas la permission d'ajouter une piste dans ce morceau"); return; } - $env->set_out("groupe", $groupe); - $groupe["id_groupe_status"] = $data->id_groupe_status_admin(); - $this->piste["groupes"] = array($groupe["id"] => $groupe); - $this->piste["derivations"] = array(); - if($_POST["morceau"]) - { if($morceau = $data->source($_POST["morceau"], true)) - { $morceau["permissions"] = $data->source_permissions($morceau, $this->user["id"]); - if(!$morceau["permissions"]["contributeur"]) - { $env->erreur("vous n'avez pas la permission d'ajouter une source dans ce morceau"); - return; - } - } - else - { $env->erreur("impossible de lire les informations du morceau"); - return; - } - $this->piste["morceau"] = $_POST["morceau"]; - } - if(isset($_POST["is_derivation"])) - { foreach($_POST as $key => $value) - { if(substr($key, 0, 14) == "derivation_id_") - { $id_source_derivation = substr($key, 14); - $xml_url = trim($_POST["derivation_".$id_source_derivation]); - $this->piste["derivations"][$id_source_derivation] = $users_sources_mod->get_source_from_xml - ( $env, - $xml_url, - ( $_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 - ); - } - } - } - if(isset($_POST["is_reference"])) - { $xml_url = trim($_POST["reference"]); - $this->piste["reference"] = $users_sources_mod->get_source_from_xml - ( $env, + } + else{ + $env->erreur("Impossible de lire les informations du morceau"); + return; + } + $piste["morceau"] = $morceau["id"]; + } + if(isset($_POST["is_derivation"])){ + foreach($_POST as $key => $value){ + if(substr($key, 0, 14) == "derivation_id_"){ + $id_source_derivation = substr($key, 14); + $xml_url = trim($_POST["derivation_".$id_source_derivation]); + $piste["derivations"][$id_source_derivation] = $users_sources_mod->get_source_from_xml( + $env, $xml_url, - ( $_POST["use_edit_reference_content"] ? - $_POST["edit_reference_content"] + ( + $_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_reference_content"] ? true : false + $_POST["use_edit_derivation_content_".$id_source_derivation] ? true : false ); } - else - { if($this->piste["titre"] = trim($_POST["titre"])) - { $this->piste["licence"] = array - ( "id" => $_POST["licence"] + } + } + if(isset($_POST["is_reference"])){ + $xml_url = trim($_POST["reference"]); + $piste["reference"] = $users_sources_mod->get_source_from_xml( + $env, + $xml_url, + ( + $_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 + ); + } + else{ + if(!($piste["titre"] = trim($_POST["titre"]))){ + $env->message("merci de préciser un titre pour la piste"); + } + $piste["licence"] = array( + "id" => $_POST["licence"] + ); + $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; + $source_infos["description"] = $_POST["description"]; + foreach($_POST as $post_key => $post_value){ + if(substr($post_key, 0, 13) == "document_nom_"){ + if($id_document = substr($post_key, 13)){ + $piste["documents"][$id_document] = array( + "nom" => $_POST["document_nom_".$id_document], + "url" => $_POST["document_url_".$id_document] ); - $source_infos["date_creation"] = $_POST["annee_date_creation"]."-".$_POST["mois_date_creation"]."-".$_POST["jour_date_creation"]; - $source_infos["description"] = $_POST["description"]; - foreach($_POST as $post_key => $post_value) - { if(substr($post_key, 0, 13) == "document_nom_") - { if($id_document = substr($post_key, 13)) - { $this->piste["documents"][$id_document] = array - ( "nom" => $_POST["document_nom_".$id_document], - "url" => $_POST["document_url_".$id_document] - ); - } - } - } } - else $env->message("merci de préciser un titre pour la source"); } - if(!$env->out("messages") && !$env->out("erreur")) - { if - ( ( $data->set_source - ( $this->piste["id"], - $this->piste["groupes"], - $this->piste["titre"], - $this->piste_status_id, - $this->piste["licence"]["id"], - $this->piste["documents"], - $this->piste["reference"], - $this->piste["derivations"], - $source_infos - ) - ) !== false + } + } + if(!$env->messages()){ + if( + ( + $data->set_source( + $piste["id"], + $piste["groupes"], + $piste["titre"], + $this->piste_status_id, + $piste["licence"]["id"], + $piste["documents"], + $piste["reference"], + $piste["derivations"], + $source_infos ) - { if($data->del_source_compositions(array("id_source" => $this->piste["id"]))) - { if($_POST["morceau"]) - { if($data->set_source_composition($this->piste["id"], $_POST["morceau"])) - { $env->redirect - ( $env->url("users/pistes/edit", array("id" => $this->piste["id"])), - "la source a été modifiée" - ); - } - else $env->erreur("La source a été modifiée mais impossible de l'associer à ce morceau"); - } - else $env->redirect - ( $env->url("users/pistes/edit", array("id" => $this->piste["id"])), - "la source a été modifiée" - ); - } - else $env->erreur("La source a été modifiée mais impossible de l'associer à ce morceau"); - } - else $env->erreur("Impossible de modifier la source"); + ) === false + ){ + $env->erreur("Impossible de modifier la piste"); + return; + } + if(!$data->del_source_compositions(array("id_source" => $piste["id"]))){ + $env->erreur("La piste a été modifiée mais impossible de l'associer à ce morceau"); + return; + } + if($_POST["morceau"]){ + if(!$data->set_source_composition($piste["id"], $_POST["morceau"])){ + $env->erreur("La piste a été modifiée mais impossible de l'associer à ce morceau"); + return; } } + $env->redirect( + $env->url("users/pistes/edit", array("id" => $piste["id"])), + "la piste a été modifiée" + ); } - else $env->erreur("Impossible de lire la liste des compositions"); - $env->set_out("piste", $this->piste); } - else $env->erreur("Impossible de creer le repertoire utilisateur"); + $env->set_out("groupes", $groupes); + $env->set_out("sources_access", $sources_access); + $env->set_out("licences", $licences); + $env->set_out("morceaux", $morceaux); + $env->set_out("piste", $piste); } function maj_xml(){ - $env = $this->env(); $data = $env->data(); - $this->piste["premissions"] = $data->source_permissions($this->piste, $this->user["id"]); - if(!$this->piste["premissions"]["editeur"]) - { $env->erreur("vous n'avez la permission d'editer cette source"); + if(!($piste = $data->source($_GET[$env->param("id")], true))){ + $env->erreur("Impossible de lire les informations de la piste"); + return; + } + $piste["permissions"] = $data->source_permissions($piste, $this->user["id"]); + if(!$piste["permissions"]["editeur"]){ + $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) - ) - { $xml_url = ""; - if($_GET[$env->param("xml")] == "derivation") - { if(isset($this->piste["derivations"][$_GET[$env->param("derivation")]]["xml"]["url"])) - $xml_url = $this->piste["derivations"][$_GET[$env->param("derivation")]]["xml"]["url"]; - } - elseif($_GET[$env->param("xml")] == "reference") - { if(isset($this->piste["reference"]["xml"]["url"])) - $xml_url = $this->piste["reference"]["xml"]["url"]; + ){ + $env->erreur("parametre de fichier xml manquant"); + return; + } + $xml_url = ""; + if($_GET[$env->param("xml")] == "derivation"){ + if(isset($piste["derivations"][$_GET[$env->param("derivation")]]["xml"]["url"])) + $xml_url = $piste["derivations"][$_GET[$env->param("derivation")]]["xml"]["url"]; + } + elseif($_GET[$env->param("xml")] == "reference"){ + if(isset($piste["reference"]["xml"]["url"])) + $xml_url = $piste["reference"]["xml"]["url"]; + } + if(!$xml_url){ + $env->message("Pas d'URL pour ce fichier XML. Impossible de recharger les informations"); + return; + } + if(!$env->messages()){ + if(($res = $data->maj_source_cache($xml_url)) === false){ + $env->erreur("Impossible de mettre à jour le contenu du fichier XML dans le cache"); + return; } - $erreur = ""; - if($xml_url) - { if(($res = $data->maj_source_cache($xml_url)) !== false) - { if($res === true) - { if($this->piste = $data->source($this->piste["id"])) - { $env->redirect - ( $env->url("users/pistes/edit", array("id" => $this->piste["id"])), - "Les informations du fichier XML ont été mises à jour", - 2 - ); - return; - } - else $erreur = - "le contenu du fichier XML a été mis à jour" - .", mais impossible de lire les informations de la source"; - } - else - { switch($res) - { case -1: $env->message("Impossible de lire le contenu du fichier XML"); break; - case -2: $env->message("Le fichier XML indiqué ne contient pas un fichier de source valide"); break; - default: $erreur = "Erreur inconnue (?)"; break; - } - } + if($res === true){ + if($piste = $data->source($piste["id"])){ + $env->redirect( + $env->url("users/pistes/edit", array("id" => $piste["id"])), + "Les informations du fichier XML ont été mises à jour", + 2 + ); + } + else{ + $env->erreur( + "le contenu du fichier XML a été mis à jour" + .", mais impossible de lire les informations de la piste" + ); } - else $erreur = "Impossible de mettre à jour le contenu du fichier XML dans le cache"; + return; + } + switch($res){ + case -1: $env->message("Impossible de lire le contenu du fichier XML"); break; + case -2: $env->message("Le fichier XML indiqué ne contient pas un fichier de source valide"); break; + default: $env->erreur("Erreur inconnue (?)"); return; } - else $env->message("Pas d'URL pour ce fichier XML. Impossible de recharger les informations"); - if($erreur) $env->erreur($erreur); - else $env->run("users/pistes/edit", array("id" => $this->piste["id"])); } - else $env->erreur("parametre de fichier xml manquant"); + $env->run("users/pistes/edit", array("get" => array("id" => $piste["id"]))); } function del(){ $env = $this->env(); $data = $env->data(); - $this->piste["premissions"] = $data->source_permissions($this->piste, $this->user["id"]); - if($this->piste["premissions"]["admin"]) - { if($data->del_source($this->piste["id"])) - { $env->redirect - ( $env->url("users/pistes"), - "la source a été supprimée" - ); - } - else $env->erreur("Impossible de supprimer la source"); + if(!($piste = $data->source($_GET[$env->param("id")], true))){ + $env->erreur("Impossible de lire les informations de la piste"); + return; + } + $piste["permissions"] = $data->source_permissions($piste, $this->user["id"]); + if(!$piste["permissions"]["admin"]){ + $env->erreur("vous n'avez pas la permission d'effacer cette piste"); + return; + } + if(!$data->del_source($piste["id"])){ + $env->erreur("Impossible de supprimer la piste"); + return; } - else $env->erreur("vous n'avez la permission d'effacer cette source"); + $env->redirect( + $env->url("users/pistes"), + "la piste a été supprimée" + ); } } diff --git a/app/data/modules/share/sml_data_sources_xml_format.php b/app/data/modules/share/sml_data_sources_xml_format.php index 0847036..b087aae 100644 --- a/app/data/modules/share/sml_data_sources_xml_format.php +++ b/app/data/modules/share/sml_data_sources_xml_format.php @@ -3,7 +3,7 @@ class sml_data_sources_xml_format extends mw_data { - var $status; + var $status; // classes de sources - table sml_classes var $source; var $groupes; var $licence; @@ -91,7 +91,7 @@ function empty_source($params = array()) { $source = array - ( "auteurs" => array(), + ( "groupes" => array(), "titre" => "", "from" => "", "licence" => array @@ -124,7 +124,7 @@ { $this->buffer = $this->sxml->data["source"][0]; foreach($this->buffer["subs"] as $key => $value) { if($key == "auteur") - { $source["auteurs"][] = array + { $source["groupes"][] = array ( "nom" => $value[0]["data"] ); } @@ -165,7 +165,7 @@ } } $source["auteur"] = ""; - foreach($source["auteurs"] as $auteur) $source["auteur"] .= ($source["auteur"] ? ", " : "").$auteur["nom"]; + foreach($source["groupes"] as $auteur) $source["auteur"] .= ($source["auteur"] ? ", " : "").$auteur["nom"]; } else return false; } diff --git a/app/data/modules/sql/sml_data_source_groupes.php b/app/data/modules/sql/sml_data_source_groupes.php index de997f9..44dec36 100644 --- a/app/data/modules/sql/sml_data_source_groupes.php +++ b/app/data/modules/sql/sml_data_source_groupes.php @@ -16,7 +16,8 @@ .", #--sml_sources_authors.id_sources_access as id_groupe_status" ." FROM #--sml_authors, #--sml_sources_authors" ." WHERE #--sml_sources_authors.id_author=#--sml_authors.id" - ." AND #--sml_sources_authors.id_source=".$this->eq($id_source); + ." AND #--sml_sources_authors.id_source=".$this->eq($id_source) + ." ORDER BY nom"; $rst = $sgbd->query($sql); $groupes = array(); while($v_rst = $sgbd->fetch_assoc($rst)) @@ -33,6 +34,68 @@ return $groupes; } + function groupes_sources($params){ + if(!isset($params["groupes"])) return false; + if(!isset($params["id_source_access"])) return false; + $satisfy_all_groupes_access = true; + if(isset($params["satisfy_all_groupes_access"])){ + $satisfy_all_groupes_access = $params["satisfy_all_groupes_access"] ? true : false; + } + $source_access_ids = ""; + if($params["id_source_access"] == $this->id_groupe_status_contributeur()){ + $source_access_ids = + $this->id_groupe_status_contributeur() + .", ".$this->id_groupe_status_editeur() + .", ".$this->id_groupe_status_admin(); + } + elseif($params["id_source_access"] == $this->id_groupe_status_editeur()){ + $source_access_ids = + $this->id_groupe_status_editeur() + .", ".$this->id_groupe_status_admin(); + } + elseif($params["id_source_access"] == $this->id_groupe_status_admin()){ + $source_access_ids = + $this->id_groupe_status_admin(); + } + if(!$source_access_ids) return false; + $sources = array(); + if(!($groupes = $params["groupes"])) return $sources; + $author_ids = ""; + foreach($groupes as $i => $groupe) $author_ids .= ($author_ids ? ", " : "").$groupe["id"]; + $sgbd = $this->sgbd(); + try{ + $sql = + "SELECT #--sml_sources.*, #--sml_sources_authors.id_author" + ." FROM #--sml_sources, #--sml_sources_authors" + ." WHERE #--sml_sources.id=#--sml_sources_authors.id_source" + ." AND #--sml_sources_authors.id_sources_access IN(".$source_access_ids.")" + ." AND #--sml_sources_authors.id_author IN(".$author_ids.")"; + if(isset($params["id_class"])){ + $sql .= " AND #--sml_sources.id_class=".$this->eq($params["id_class"]); + } + $rst = $sgbd->query($sql); + while($v_rst = $sgbd->fetch_assoc($rst)){ + if(!isset($sources[$v_rst["id"]])){ + $sources[$v_rst["id"]] = $v_rst; + $sources[$v_rst["id"]]["authors"] = array(); + } + $sources[$v_rst["id"]]["authors"][] = $v_rst["id_author"]; + } + $sgbd->free_result($rst); + foreach($sources as $id_source => $source){ + if($satisfy_all_groupes_access){ + if(count($source["authors"]) < count($groupes)){ + unset($sources[$id_source]); + continue; + } + } + if(!($sources[$id_source] = $this->load_source($source))) return false; + } + } + catch(Exception $e) { $sources = false; } + return $sources; + } + function add_source_groupe($id_source, $id_groupe, $id_groupe_status) { $sgbd = $this->sgbd(); try{ @@ -86,6 +149,19 @@ // -------------------------------------------------------------------- + function sources_access(){ + $sgbd = $this->sgbd(); + $sources_access = array(); + try{ + $sql = "SELECT * FROM #--sml_sources_access"; + $rst = $sgbd->query($sql); + while($v_rst = $sgbd->fetch_assoc($rst)) $sources_access[$v_rst["id"]] = $v_rst; + $sgbd->free_result($rst); + } + catch(Exception $e) { $sources_access = false; } + return $sources_access; + } + function id_groupe_status_admin() { return 1; } function id_groupe_status_editeur() { return 2; } function id_groupe_status_contributeur() { return 3; } @@ -101,6 +177,19 @@ return $groupe; } + function get_editor_groupes($groupes){ + $editor_groupes = array(); + if(is_array($groupes)) foreach($groupes as $source_groupe) + { if( + $source_groupe["id_groupe_status"] == $this->id_groupe_status_admin() + || $source_groupe["id_groupe_status"] == $this->id_groupe_status_editeur() + ){ + $editor_groupes[] = $source_groupe; + } + } + return $editor_groupes; + } + function source_permissions($source, $id_user) { $permissions = array ( "admin" => false, diff --git a/app/data/modules/sql/sml_data_sources.php b/app/data/modules/sql/sml_data_sources.php index 8e8056e..f4d78bd 100644 --- a/app/data/modules/sql/sml_data_sources.php +++ b/app/data/modules/sql/sml_data_sources.php @@ -5,7 +5,7 @@ var $status; # ---------------------------------------------------------------------------------------- - # status de source + # classes de source # function source_status(){ @@ -52,7 +52,7 @@ $ORDER_FROM_SOURCES_INFOS = !$ORDER_FIELD_EXISTS; $sources = array("list" => array(), "total" => 0); $COUNT_SELECT = "SELECT count(*) as n"; - $SELECT = "SELECT #--sml_sources.*, #--sml_sources.id_class as status"; + $SELECT = "SELECT #--sml_sources.*, #--sml_sources.id_class as `status`"; if($ORDER_FROM_SOURCES_INFOS){ if($order_by == "ordre"){ $SELECT .= ", (0 + #--sml_sources_infos.`value`) as ordre"; @@ -78,13 +78,13 @@ ($WHERE ? " AND " : " WHERE ") ." #--sml_sources.id=#--sml_sources_authors.id_source" ." AND #--sml_sources_authors.id_author=#--sml_authors.id" - ." AND #--sml_authors.id_user=".$this->eq($id_user) - ." AND #--sml_sources_authors.id_sources_access=".$this->id_groupe_status_admin(); + ." AND #--sml_authors.id_user=".$this->eq($id_user)/* + ." AND #--sml_sources_authors.id_sources_access=".$this->id_groupe_status_admin()*/; if(isset($id_groupe)) $WHERE .= ($WHERE ? " AND " : " WHERE ") ." #--sml_sources.id=#--sml_sources_authors.id_source" - ." AND #--sml_sources_authors.id_author=".$this->eq($id_groupe) - ." AND #--sml_sources_authors.id_sources_access=".$this->id_groupe_status_admin(); + ." AND #--sml_sources_authors.id_author=".$this->eq($id_groupe)/* + ." AND #--sml_sources_authors.id_sources_access=".$this->id_groupe_status_admin()*/; if(isset($status)) $WHERE .= ($WHERE ? " AND " : " WHERE ") ." #--sml_sources.id_class=".$this->eq($status); diff --git a/app/out/default/css/actions/sources.css b/app/out/default/css/actions/sources.css index bee10b0..1a7239c 100644 --- a/app/out/default/css/actions/sources.css +++ b/app/out/default/css/actions/sources.css @@ -1,40 +1,46 @@ /* ------------------------------- liste groupes ----------- */ -ul.groupes -{ list-style-type: none; +ul.groupes{ + list-style-type: none; } -ul.groupes li -{ margin: 10px 10px 10px 100px; +ul.groupes li{ padding: 0px; -/* float: left;*/ - width: 370px; + float: left; + width: 33%; } -ul.groupes li h4 -{ font-size: 16px; +ul.groupes li h4{ + font-size: 1.2em; + font-weight: bold; margin: 0px; padding: 0px; + margin: 10px; } -ul.groupes li h4 a -{ display: block; +ul.groupes li h4 a{ + display: block; padding: 5px; - width: 370px; height: 100px; + border: solid 1px #d9d9d9; + border-radius: 3px 3px 3px 3px; + -moz-border-radius: 3px 3px 3px 3px; +} +ul.groupes li h4 a:hover{ + color: #000066; + background-color: #f1f1f1; } -ul.groupes li h4 a img -{ display: block; +ul.groupes li h4 a img{ + display: block; float: left; } -ul.groupes li h4 a span -{ float: right; +ul.groupes li h4 a span{ display: block; + margin-left: 150px; padding: 3px; text-align: right; - width: 238px; } ul.groupes li .infos li @@ -55,6 +61,10 @@ ul.groupes li .infos li /* ------------------------------- page album ----------- */ +.logo_album{ + text-align: center; +} + p#play_all { } @@ -113,7 +123,7 @@ p#play_all a float: right; padding: 10px 5px 0px 5px; } - +/* ul#lien_contact { margin: 20px 18px 0px 0px; padding: 0px; @@ -130,7 +140,7 @@ ul#lien_contact li a text-align: right; padding: 5px 5px 0px 5px; } - +*/ /* ------------------------------- albums (page groupe) --- */ #center ul.menu_albums @@ -330,21 +340,13 @@ ul.documents li padding: 0px; } -/* ------------------------------- liste groupes ----------- */ - -ul.groupes li h4 a -{ border: solid 1px #d9d9d9; - border-radius: 3px 3px 3px 3px; - -moz-border-radius: 3px 3px 3px 3px; -} - /* ------------------------------- page album ----------- */ p#play_all a { border: solid 1px #c0c0c0; border-radius: 3px 3px 3px 3px; -moz-border-radius: 3px 3px 3px 3px; - background-image: url("../icons/ecouter.png"); + background-image: url("../../icons/ecouter.png"); background-repeat: no-repeat; background-position: 6px 6px; background-color: #ffffff; @@ -457,7 +459,7 @@ ul#lien_contact li a } .loading -{ background-image: url("../icons/ajax-loader.gif"); +{ background-image: url("../../icons/ajax-loader.gif"); background-repeat: no-repeat; background-position: 5px 5px; } \ No newline at end of file diff --git a/app/out/default/css/sourceml_accounts.css b/app/out/default/css/sourceml_accounts.css index 02e316a..0825116 100644 --- a/app/out/default/css/sourceml_accounts.css +++ b/app/out/default/css/sourceml_accounts.css @@ -62,4 +62,7 @@ ul.xml_infos li { border: solid 1px #c0c0c0; } - +.source_groupes .access{ + color: #c0c0c0; + padding-left: 20px; +} \ No newline at end of file diff --git a/app/out/default/js/actions/users.js b/app/out/default/js/actions/users.js index 3927192..798f2bd 100644 --- a/app/out/default/js/actions/users.js +++ b/app/out/default/js/actions/users.js @@ -31,11 +31,9 @@ function select_morceaux_groupe(id_groupe) + "

" + "" diff --git a/app/out/default/layouts/sources.xml b/app/out/default/layouts/sources.xml index f1b18b0..7d319a7 100644 --- a/app/out/default/layouts/sources.xml +++ b/app/out/default/layouts/sources.xml @@ -2,7 +2,8 @@ - + + diff --git a/app/out/default/views/forms/sourceml/contact_author.php b/app/out/default/views/forms/sourceml/contact_author.php index 5aac027..9547cb0 100644 --- a/app/out/default/views/forms/sourceml/contact_author.php +++ b/app/out/default/views/forms/sourceml/contact_author.php @@ -1,6 +1,6 @@

-

Envoyer un message à out["groupe"]["nom"] ?>

+

Envoyer un message à out["groupe"]["nom"] ?>

$this->out["groupe"]["id"])) ?>" method="post"> diff --git a/app/out/default/views/sources/album/ariane.php b/app/out/default/views/sources/album/ariane.php index 3ea943e..f114276 100644 --- a/app/out/default/views/sources/album/ariane.php +++ b/app/out/default/views/sources/album/ariane.php @@ -2,10 +2,6 @@

-out["groupe"]) && $this->out["groupe"]) : $ariane_params["groupe"] = $this->out["groupe"]["id"]; ?> - » - $this->out["groupe"]["id"])) ?>">out["groupe"]["nom"] ?> - out["album"]) && $this->out["album"]) : ?> » $this->out["album"]["id"])) ?>">out["album"]["titre"] ?> diff --git a/app/out/default/views/sources/album/list.php b/app/out/default/views/sources/album/list.php index 05328e1..a450d4c 100644 --- a/app/out/default/views/sources/album/list.php +++ b/app/out/default/views/sources/album/list.php @@ -1,4 +1,4 @@ -out_file("views/sources/album/ariane.php"); ?> +

Albums

out["groupes"]["total"] > 1) : ?> diff --git a/app/out/default/views/sources/album/view.php b/app/out/default/views/sources/album/view.php index 5cf73de..ce1561a 100644 --- a/app/out/default/views/sources/album/view.php +++ b/app/out/default/views/sources/album/view.php @@ -1,8 +1,5 @@

- $this->out["album"]["id"])) ?>"> - out["album"]["reference"] ? $this->out["album"]["reference"]["titre"] : $this->out["album"]["titre"] ?> - -   + out["album"]["reference"] ? $this->out["album"]["reference"]["titre"] : $this->out["album"]["titre"] ?>

out["album"]["image_uri"] && file_exists($this->out["album"]["image_uri"]) - && ($img_size = $data->img_size($this->out["album"]["image_uri"], 150, 150)) !== false + && ($img_size = $data->img_size($this->out["album"]["image_uri"], 450, 450)) !== false ) : - $margin_top = floor((150 - $img_size["height"]) / 2); +// $margin_top = floor((450 - $img_size["height"]) / 2); + $margin_top = 10; $album_image_uri = $this->path("web").$this->out["album"]["image_uri"]; ?> -

+

" height="" diff --git a/app/out/default/views/sources/current_album.php b/app/out/default/views/sources/current_album.php deleted file mode 100644 index f0af20f..0000000 --- a/app/out/default/views/sources/current_album.php +++ /dev/null @@ -1,31 +0,0 @@ -out["album"]) && $this->out["album"]) : $album = $this->out["album"]; ?> - -

- - - -
- - diff --git a/app/out/default/views/sources/current_album_box.php b/app/out/default/views/sources/current_album_box.php deleted file mode 100644 index 5a2dcdb..0000000 --- a/app/out/default/views/sources/current_album_box.php +++ /dev/null @@ -1,11 +0,0 @@ -etat("mod") == "sources" && $this->etat("controller") == "groupe" && $this->etat("action") == "view") : ?> - -out_config("nom_groupe")) require $this->out_file("views/sources/nom_groupe.php"); ?> - -out_config("colonne_logo_groupe")) require $this->out_file("views/sources/logo_groupe.php"); ?> - - - -out_config("albums_menu")) require $this->out_file("views/sources/current_album.php"); ?> - -out_file("views/sources/lien_contact.php"); ?> diff --git a/app/out/default/views/sources/groupe/view.php b/app/out/default/views/sources/groupe/view.php index 7daaf59..88556d9 100644 --- a/app/out/default/views/sources/groupe/view.php +++ b/app/out/default/views/sources/groupe/view.php @@ -1,3 +1,4 @@ +

out["groupe"]["nom"]; ?>

out["groupe"]["description"] ?>
@@ -40,3 +41,10 @@
+ +out["groupe"]["contact_form"]) : ?> +

Contact

+

+ $this->out["groupe"]["id"])) ?>">Envoyer un message à out["groupe"]["nom"]; ?>. +

+ diff --git a/app/out/default/views/sources/groupe_box.php b/app/out/default/views/sources/groupe_box.php index 76b0b9a..e2c49bf 100644 --- a/app/out/default/views/sources/groupe_box.php +++ b/app/out/default/views/sources/groupe_box.php @@ -4,6 +4,5 @@ if($this->out_config("colonne_logo_groupe")) require $this->out_file("views/sources/logo_groupe.php"); if(($this->etat("controller") == "groupe") && $this->out_config("groupe_view_albums")) $this->set_config(array("out_albums_menu" => "")); if($this->out_config("albums_menu")) require $this->out_file("views/sources/menu_albums.php"); - require $this->out_file("views/sources/lien_contact.php"); ?> \ No newline at end of file diff --git a/app/out/default/views/sources/lien_contact.php b/app/out/default/views/sources/lien_contact.php deleted file mode 100644 index ee0804a..0000000 --- a/app/out/default/views/sources/lien_contact.php +++ /dev/null @@ -1,8 +0,0 @@ -out["groupe"]) && $this->out["groupe"] && $this->out["groupe"]["contact_form"]) : ?> - -
- diff --git a/app/out/default/views/sources/logo_groupe.php b/app/out/default/views/sources/logo_groupe.php index 87faa7b..769c303 100644 --- a/app/out/default/views/sources/logo_groupe.php +++ b/app/out/default/views/sources/logo_groupe.php @@ -1,18 +1,39 @@ data(); + + if( + $this->is_running("sources/album/view") + || $this->is_running("sources/morceau/view") + || $this->is_running("sources/piste/view") + ){ + if($this->is_running("sources/album/view")) $groupes = $this->out["album"]["groupes"]; + if($this->is_running("sources/morceau/view")) $groupes = $this->out["morceau"]["groupes"]; + if($this->is_running("sources/piste/view")) $groupes = $this->out["piste"]["groupes"]; + foreach($groupes as $id_groupe => $groupe){ + if( + ($groupe["id_groupe_status"] != $data->id_groupe_status_admin()) + && ($groupe["id_groupe_status"] != $data->id_groupe_status_editeur()) + ) unset($groupes[$id_groupe]); + } + } + elseif($this->is_running("sources")){ + if(isset($this->out["groupe"])) $groupes = array($this->out["groupe"]["id"] => $this->out["groupe"]); + } + foreach($groupes as $groupe) : if( - isset($this->out["groupe"]) - && $this->out["groupe"] - && $this->out["groupe"]["image_uri"] - && file_exists($this->out["groupe"]["image_uri"]) - && ($img_size = $data->img_size($this->out["groupe"]["image_uri"], 200, 130)) !== false + isset($groupe["image_uri"]) + && $groupe["image_uri"] + && file_exists($groupe["image_uri"]) + && ($img_size = $data->img_size($groupe["image_uri"], 200, 130)) !== false ) : $margin_top = floor((150 - $img_size["height"]) / 2); ?> + diff --git a/app/out/default/views/sources/morceau/ariane.php b/app/out/default/views/sources/morceau/ariane.php index 732c8fa..6f1c354 100644 --- a/app/out/default/views/sources/morceau/ariane.php +++ b/app/out/default/views/sources/morceau/ariane.php @@ -2,10 +2,6 @@

-out["groupe"]) && $this->out["groupe"]) : $ariane_params["groupe"] = $this->out["groupe"]["id"]; ?> - » - $this->out["groupe"]["id"])) ?>">out["groupe"]["nom"] ?> - out["album"]) && $this->out["album"]) : $ariane_params["album"] = $this->out["album"]["id"]; ?> out["album"]["id"]; ?> » diff --git a/app/out/default/views/sources/morceau/list.php b/app/out/default/views/sources/morceau/list.php index 0a326c1..452b0bf 100644 --- a/app/out/default/views/sources/morceau/list.php +++ b/app/out/default/views/sources/morceau/list.php @@ -1,4 +1,4 @@ -out_file("views/sources/morceau/ariane.php"); ?> +

Morceaux

$this->out["morceau"]["id"]); ?> -out["album"]) : $ariane_params["album"] = $this->out["album"]["id"]; ?> +out["album"]) && $this->out["album"]) : $ariane_params["album"] = $this->out["album"]["id"]; ?> "> out["album"]["titre"] ?> diff --git a/app/out/default/views/sources/piste/list.php b/app/out/default/views/sources/piste/list.php index 8051535..4f6cd1b 100644 --- a/app/out/default/views/sources/piste/list.php +++ b/app/out/default/views/sources/piste/list.php @@ -1,4 +1,4 @@ -out_file("views/sources/piste/ariane.php"); ?> +

Sources

$this->out["piste"]["id"]); ?> -out["album"]) : $ariane_params["album"] = $this->out["album"]["id"]; ?> +out["album"]) && $this->out["album"]) : $ariane_params["album"] = $this->out["album"]["id"]; ?> "> out["album"]["titre"] ?> » -out["morceau"]) : $ariane_params["morceau"] = $this->out["morceau"]["id"]; ?> +out["morceau"]) && $this->out["morceau"]) : $ariane_params["morceau"] = $this->out["morceau"]["id"]; ?> "> out["morceau"]["reference"] ? $this->out["morceau"]["reference"]["titre"] : $this->out["morceau"]["titre"] ?> diff --git a/app/out/default/views/sources/source/header.php b/app/out/default/views/sources/source/header.php index 6910161..7b87bd5 100644 --- a/app/out/default/views/sources/source/header.php +++ b/app/out/default/views/sources/source/header.php @@ -1,26 +1,20 @@ $source["reference"]["auteur"], - "url" => $source["reference"]["from"] - ); - } - else - { $groupe = $data->get_admin_groupe($source["groupes"]); - if($groupe) $groupe["url"] = $this->url("sources/groupe/view", array("id" => $groupe["id"])); - } + $groupes = $data->get_editor_groupes($source["reference"] ? $source["reference"]["groupes"] : $source["groupes"]); + foreach($groupes as $k => $groupe) $groupes[$k]["url"] = $this->url("sources/groupe/view", array("id" => $groupe["id"])); ?>
-"> + + ">
+ - référence » "> () + référence » "> "> diff --git a/app/out/default/views/users/albums/edit.php b/app/out/default/views/users/albums/edit.php index e1132d1..2d737f5 100644 --- a/app/out/default/views/users/albums/edit.php +++ b/app/out/default/views/users/albums/edit.php @@ -33,7 +33,7 @@
  • - out["album"]["image"]) : ?> + out["album"]["image"])) : ?> " />

    effacer l'icone

    diff --git a/app/out/default/views/users/morceaux/edit.php b/app/out/default/views/users/morceaux/edit.php index 39d4c81..160c7c2 100644 --- a/app/out/default/views/users/morceaux/edit.php +++ b/app/out/default/views/users/morceaux/edit.php @@ -1,16 +1,9 @@ -out_file("views/tinymce.init.js.php"); ?> +out_file("views/tinymce.init.js.php"); $data = $this->data(); ?>

    Modifier un morceau

    out["groupes"]["total"] > 0) : ?> @@ -74,10 +71,8 @@ var is_reference = out["piste"]["reference"] ? "true" : "false @@ -88,7 +83,7 @@ var is_reference = out["piste"]["reference"] ? "true" : "false
    • - +
      out["piste"]["derivations"] ? " checked=\"checked\"" : "" ?> />
      @@ -133,7 +128,7 @@ var is_reference = out["piste"]["reference"] ? "true" : "false
      • - +
        out["piste"]["reference"] ? " checked=\"checked\"" : "" ?> />
        @@ -228,7 +223,7 @@ var is_reference = out["piste"]["reference"] ? "true" : "false " />
        - " /> + " />
    @@ -247,7 +242,7 @@ var is_reference = out["piste"]["reference"] ? "true" : "false
      -
    • +
    • diff --git a/app/out/default/views/users/pistes/edit.php b/app/out/default/views/users/pistes/edit.php index be94c15..1c46820 100644 --- a/app/out/default/views/users/pistes/edit.php +++ b/app/out/default/views/users/pistes/edit.php @@ -1,19 +1,9 @@ -out_file("views/tinymce.init.js.php"); ?> +out_file("views/tinymce.init.js.php"); $data = $this->data(); ?> -

      Modifier une source

      +

      Modifier une piste

      out["groupes"]["total"] > 0) : ?> $_GET[$this->param("id")])) ?>" method="post">
      - " /> - +
      • - +
        - +
          + out["piste"]["groupes"] as $id_groupe => $groupe) : ?> +
        • + + out["sources_access"][$groupe["id_groupe_status"]]["intitule"]; ?> +
        • + +
      • - + +
      + + + +
        +
      • @@ -91,7 +70,7 @@ var is_reference = out["piste"]["reference"] ? "true" : "false
        • - +
          out["piste"]["derivations"] ? " checked=\"checked\"" : "" ?> />
          @@ -137,7 +116,7 @@ var is_reference = out["piste"]["reference"] ? "true" : "false
          • - +
            out["piste"]["reference"] ? " checked=\"checked\"" : "" ?> />
            @@ -167,7 +146,7 @@ var is_reference = out["piste"]["reference"] ? "true" : "false require $this->out_file("views/content/sources/xml_form.php"); ?> - +
          @@ -177,7 +156,7 @@ var is_reference = out["piste"]["reference"] ? "true" : "false
        • - " />

          + " />
        • @@ -191,7 +170,7 @@ var is_reference = out["piste"]["reference"] ? "true" : "false
  • - +
  • diff --git a/app/out/default/views/users/pistes/list.php b/app/out/default/views/users/pistes/list.php index a02b4a5..8754f53 100644 --- a/app/out/default/views/users/pistes/list.php +++ b/app/out/default/views/users/pistes/list.php @@ -1,105 +1,55 @@ -param("groupe")]) && $_GET[$this->param("groupe")] && is_array($this->out["albums"][$_GET[$this->param("groupe")]])) - { foreach($this->out["albums"][$_GET[$this->param("groupe")]] as $id_album => $album) - { $albums[$id_album] = $album; - } - } - else - { foreach($this->out["albums"] as $id_groupe => $_albums) - { foreach($this->out["albums"][$id_groupe] as $id_album => $album) - { $albums[$id_album] = $album; - } - } - } - - $morceaux = array(); - if(isset($_GET[$this->param("groupe")]) && $_GET[$this->param("groupe")]) - { $id_groupe = $_GET[$this->param("groupe")]; - if(is_array($this->out["morceaux"][$id_groupe])) - { foreach($this->out["morceaux"][$id_groupe] as $id_album => $_morceaux) - { if(isset($_GET[$this->param("album")]) && $_GET[$this->param("album")]) - { if($id_album == $_GET[$this->param("album")]) - { foreach($this->out["morceaux"][$id_groupe][$id_album] as $id_morceau => $morceau) - { $morceaux[$id_morceau] = $morceau; - } - } - } - else - { foreach($this->out["morceaux"][$id_groupe] as $id_album => $_morceaux) - { foreach($this->out["morceaux"][$id_groupe][$id_album] as $id_morceau => $morceau) - { $morceaux[$id_morceau] = $morceau; - } - } - } - } - } - } - else - { foreach($this->out["morceaux"] as $id_groupe => $_albums) - { foreach($this->out["morceaux"][$id_groupe] as $id_album => $_morceaux) - { foreach($this->out["morceaux"][$id_groupe][$id_album] as $id_morceau => $morceau) - { $morceaux[$id_morceau] = $morceau; - } - } - } - } - -?> - -

    Sources

    +

    Pistes

    -out["groupes"]["total"] > 0) : ?> +out["groupes"]["total"] > 0 || (isset($this->out["morceaux"]["total"]) && $this->out["morceaux"]["total"] > 0)) : ?>
      out["groupes"]["total"] > 0) : ?>
    • +param("morceau")]) && !$_GET[$this->param("morceau")]) $url_params["morceau"] = ""; + +?> -
    • - - -
    • - - -
    • - - +out["morceaux"]) : ?>
    • +param("groupe")])) $url_params["groupe"] = $_GET[$this->param("groupe")]; + +?>
    • -
    out["pistes"]["list"]) : ?> -out_file("views/navig.php"); ?> +out_file("views/navig.php"); ?> référence » "> () - $id_piste)) ?>"> + $id_morceau)) ?>">
    @@ -139,7 +89,7 @@ $id_piste)) ?>" class="admin_link" - title="modifier cette source">" /> + title="modifier cette piste">" />   @@ -148,8 +98,8 @@ $id_piste)) ?>" class="admin_link" - title="supprimer cette source" - onclick="return confirm('Supprimer cette source ?')">" /> + title="supprimer cette piste">" + onclick="return confirm('Supprimer cette piste ?')"/>   @@ -167,8 +117,8 @@ -out_file("views/navig.php"); ?> +out_file("views/navig.php"); ?> -

    Aucune source pour le moment

    +

    Aucune piste pour le moment

    diff --git a/mw_sourceml.php b/mw_sourceml.php index ef62f77..2769e77 100644 --- a/mw_sourceml.php +++ b/mw_sourceml.php @@ -17,12 +17,12 @@ $env->set_link("admin/sourceml/cache", $env->url("admin/cache"), "Cache", 20); $env->set_link("admin/sourceml/maintenance", $env->url("admin/maintenance"), "Maintenance", 30); - $env->set_link("users/authors", $env->url("users/groupes"), "Auteurs", 30); + $env->set_link("users/authors", $env->url("users/groupes"), "Groupes", 30); $env->set_link("users/albums", $env->url("users/albums"), "Albums", 31); $env->set_link("users/morceaux", $env->url("users/morceaux"), "Morceaux", 32); $env->set_link("users/pistes", $env->url("users/pistes"), "Sources", 33); - $env->set_link("menu_top/groupes", $env->url("sources/groupe"), "Auteurs", 10); + $env->set_link("menu_top/groupes", $env->url("sources/groupe"), "Groupes", 10); $env->set_link("menu_top/albums", $env->url("sources/album"), "Albums", 11); $env->set_link("menu_top/morceaux", $env->url("sources/morceau"), "Morceaux", 12); $env->set_link("menu_top/pistes", $env->url("sources/piste"), "Sources", 13); -- 2.1.4