X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=mw_sourceml.php;h=a9e27f27f8114f052000b3b880d97a66e027f514;hb=refs%2Ftags%2Fsourceml.1.1.0;hp=47c3d4e6c098cf93b977aaf42345d70d21b65be3;hpb=ce50b139cfeb948f0a773ccd7bd7d6a800b06692;p=mw_sourceml diff --git a/mw_sourceml.php b/mw_sourceml.php index 47c3d4e..a9e27f2 100644 --- a/mw_sourceml.php +++ b/mw_sourceml.php @@ -34,6 +34,18 @@ return true; } + function nb_invitations($env){ + if($user = $env->user()){ + $data = $env->data(); + if($groupes = $data->groupes($user["id"])){ + if($invitations = $data->sources_invitations($groupes["list"], $user["id"])){ + return $invitations["total"]; + } + } + } + return 0; + } + function enable($env){ return true; } @@ -54,6 +66,9 @@ elseif( $env->bdd("sgbd") == "pdo_sqlite" ) return $this->install_sqlite($env); + elseif( + $env->bdd("sgbd") == "xml" + ) return $this->install_xml($env); return "Mode de stockage pour Mtweb (".$env->bdd("sgbd").") non supporté par SourceML"; } @@ -248,7 +263,7 @@ $sgbd->query($sql); $sql = - "INSERT INTO `mw_sml_sources_access` (`id`, `nom`, `intitule`) VALUES" + "INSERT INTO `#--sml_sources_access` (`id`, `nom`, `intitule`) VALUES" ."(1, 'admin', 'administrateur')," ."(2, 'editeur', 'éditeur')," ."(3, 'contributeur', 'contributeur')"; @@ -471,15 +486,15 @@ $sgbd->query($sql); $sql = - "INSERT INTO `mw_sml_sources_access` (`id`, `nom`, `intitule`) VALUES (1, 'admin', 'administrateur')"; + "INSERT INTO `#--sml_sources_access` (`id`, `nom`, `intitule`) VALUES (1, 'admin', 'administrateur')"; $sgbd->query($sql); $sql = - "INSERT INTO `mw_sml_sources_access` (`id`, `nom`, `intitule`) VALUES (2, 'editeur', 'éditeur')"; + "INSERT INTO `#--sml_sources_access` (`id`, `nom`, `intitule`) VALUES (2, 'editeur', 'éditeur')"; $sgbd->query($sql); $sql = - "INSERT INTO `mw_sml_sources_access` (`id`, `nom`, `intitule`) VALUES (3, 'contributeur', 'contributeur')"; + "INSERT INTO `#--sml_sources_access` (`id`, `nom`, `intitule`) VALUES (3, 'contributeur', 'contributeur')"; $sgbd->query($sql); } @@ -489,6 +504,208 @@ return true; } + function install_xml($env){ + $data = $env->data(); + $sgbd = $data->sgbd(); + + $RES = true; + $res = $sgbd->data_exists("sml_authors"); if(isset($res)){ if($res) $RES = 1; } else $RES = -1; + $res = $sgbd->data_exists("sml_classes"); if(isset($res)){ if($res) $RES = 1; } else $RES = -1; + $res = $sgbd->data_exists("sml_licences"); if(isset($res)){ if($res) $RES = 1; } else $RES = -1; + $res = $sgbd->data_exists("sml_sources"); if(isset($res)){ if($res) $RES = 1; } else $RES = -1; + $res = $sgbd->data_exists("sml_sources_access"); if(isset($res)){ if($res) $RES = 1; } else $RES = -1; + $res = $sgbd->data_exists("sml_sources_authors"); if(isset($res)){ if($res) $RES = 1; } else $RES = -1; + $res = $sgbd->data_exists("sml_sources_infos"); if(isset($res)){ if($res) $RES = 1; } else $RES = -1; + $res = $sgbd->data_exists("sml_source_cache"); if(isset($res)){ if($res) $RES = 1; } else $RES = -1; + $res = $sgbd->data_exists("sml_source_compositions"); if(isset($res)){ if($res) $RES = 1; } else $RES = -1; + $res = $sgbd->data_exists("sml_source_derivations"); if(isset($res)){ if($res) $RES = 1; } else $RES = -1; + $res = $sgbd->data_exists("sml_source_documents"); if(isset($res)){ if($res) $RES = 1; } else $RES = -1; + $res = $sgbd->data_exists("sml_sources_invitations"); if(isset($res)){ if($res) $RES = 1; } else $RES = -1; + + if($RES === -1) return "impossible de savoir si les tables existent deja. installation annulee"; + if($RES === 1) return "des tables existent deja en base. installation annulee"; + + if(!$sgbd->create_data("sml_authors")) return "impossible de creer la table sml_authors"; + if(!$sgbd->create_data("sml_classes")) return "impossible de creer la table sml_classes"; + if(!$sgbd->create_data("sml_licences")) return "impossible de creer la table sml_licences"; + if(!$sgbd->create_data("sml_sources")) return "impossible de creer la table sml_sources"; + if(!$sgbd->create_data("sml_sources_access")) return "impossible de creer la table sml_sources_access"; + if(!$sgbd->create_data("sml_sources_authors")) return "impossible de creer la table sml_sources_authors"; + if(!$sgbd->create_data("sml_sources_infos")) return "impossible de creer la table sml_sources_infos"; + if(!$sgbd->create_data("sml_source_cache")) return "impossible de creer la table sml_source_cache"; + if(!$sgbd->create_data("sml_source_compositions")) return "impossible de creer la table sml_source_compositions"; + if(!$sgbd->create_data("sml_source_derivations")) return "impossible de creer la table sml_source_derivations"; + if(!$sgbd->create_data("sml_source_documents")) return "impossible de creer la table sml_source_documents"; + if(!$sgbd->create_data("sml_sources_invitations")) return "impossible de creer la table sml_sources_invitations"; + + $ERROR = false; + + // ------------------------------------ sml_licences + + if(!$ERROR) if( + !$sgbd->add_data( + "sml_licences", + array( + "nom" => "Creative commons by-sa 2.0", + "url" => "http://creativecommons.org/licenses/by-sa/2.0/deed.fr" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_licences", + array( + "nom" => "Creative Commons by-nc-nd 2.5", + "url" => "http://creativecommons.org/licenses/by-nc-nd/2.5/" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_licences", + array( + "nom" => "Creative Commons by-nc-sa 2.5", + "url" => "http://creativecommons.org/licenses/by-nc-sa/2.5/" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_licences", + array( + "nom" => "Creative Commons by-nc 2.5", + "url" => "http://creativecommons.org/licenses/by-nc/2.5/" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_licences", + array( + "nom" => "Creative Commons by-nd 2.5", + "url" => "http://creativecommons.org/licenses/by-nd/2.5/" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_licences", + array( + "nom" => "Creative Commons by-sa 2.5", + "url" => "http://creativecommons.org/licenses/by-sa/2.5/" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_licences", + array( + "nom" => "Creative Commons by 2.5", + "url" => "http://creativecommons.org/licenses/by/2.5/" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_licences", + array( + "nom" => "Licence Art Libre", + "url" => "http://artlibre.org/licence/lal/" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_licences", + array( + "nom" => "Licence C Reaction", + "url" => "http://morne.free.fr/Necktar7/creactionfr.htm" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_licences", + array( + "nom" => "Yellow OpenMusic License", + "url" => "http://openmusic.linuxtag.org/yellow.html" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_licences", + array( + "nom" => "Green OpenMusic License", + "url" => "http://openmusic.linuxtag.org/green.html" + ) + ) + ) $ERROR = true; + + // ------------------------------------ sml_classes + + if(!$ERROR) if( + !$sgbd->add_data( + "sml_classes", + array( + "nom" => "album" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_classes", + array( + "nom" => "morceau" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_classes", + array( + "nom" => "piste" + ) + ) + ) $ERROR = true; + + // ------------------------------------ sml_sources_access + + if(!$ERROR) if( + !$sgbd->add_data( + "sml_sources_access", + array( + "nom" => "admin", + "intitule" => "administrateur" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_sources_access", + array( + "nom" => "editeur", + "intitule" => "éditeur" + ) + ) + ) $ERROR = true; + if(!$ERROR) if( + !$sgbd->add_data( + "sml_sources_access", + array( + "nom" => "contributeur", + "intitule" => "contributeur" + ) + ) + ) $ERROR = true; + + if($ERROR){ + return "les tables ont ete ajoutees en base mais impossible d'y enregistrer les valeurs par defaut."; + } + + return true; + } + // --------------------------------------------------------------------------------- // uninstall // @@ -499,6 +716,9 @@ || $env->bdd("sgbd") == "pdo_mysql" || $env->bdd("sgbd") == "pdo_sqlite" ) return $this->uninstall_sql($env); + if( + $env->bdd("sgbd") == "xml" + ) return $this->uninstall_xml($env); return "Mode de stockage pour Mtweb (".$env->bdd("sgbd").") non supporté par SourceML"; } @@ -581,35 +801,32 @@ return true; } - // --------------------------------------------------------------------------------- - // fonctions internes - // + function uninstall_xml($env){ + $data = $env->data(); + $sgbd = $data->sgbd(); + if(!$this->disable($env)) return "impossible de desactiver le plugin"; - function nb_invitations($env){ - if($user = $env->user()){ - $data = $env->data(); - if($groupes = $data->groupes($user["id"])){ - $groupes_in = ""; - foreach($groupes["list"] as $id_groupe => $groupe) $groupes_in .= ($groupes_in ? "," : "").$id_groupe; - if($groupes_in){ - if( - ( - $invitations = $data->list_sml_sources_invitations( - array( - "index_name" => "id", - "where"=> "id_author IN(".$groupes_in.") OR id_user=".$user["id"], - "order_by" => "date_invitation", - "order" => "DESC" - ) - ) - ) !== false - ){ - return $invitations["total"]; - } - } - } + $ERROR = false; + + if(!$ERROR) if(!$sgbd->remove_data("sml_authors")) $ERROR = true; + if(!$ERROR) if(!$sgbd->remove_data("sml_classes")) $ERROR = true; + if(!$ERROR) if(!$sgbd->remove_data("sml_licences")) $ERROR = true; + if(!$ERROR) if(!$sgbd->remove_data("sml_sources")) $ERROR = true; + if(!$ERROR) if(!$sgbd->remove_data("sml_sources_access")) $ERROR = true; + if(!$ERROR) if(!$sgbd->remove_data("sml_sources_authors")) $ERROR = true; + if(!$ERROR) if(!$sgbd->remove_data("sml_sources_infos")) $ERROR = true; + if(!$ERROR) if(!$sgbd->remove_data("sml_source_cache")) $ERROR = true; + if(!$ERROR) if(!$sgbd->remove_data("sml_source_compositions")) $ERROR = true; + if(!$ERROR) if(!$sgbd->remove_data("sml_source_derivations")) $ERROR = true; + if(!$ERROR) if(!$sgbd->remove_data("sml_source_documents")) $ERROR = true; + if(!$ERROR) if(!$sgbd->remove_data("sml_sources_invitations")) $ERROR = true; + + + if($ERROR){ + return "erreur lors de la suppression des tables"; } - return 0; + + return true; } }