$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("users/sources_invitations", $env->url("users/sources_invitations"), "Invitations", 34);
+
+ $invitations_title = "Invitations";
+ if($nb_invitations = $this->nb_invitations($env)) $invitations_title .= " (".$nb_invitations.")";
+ $env->set_link("users/sources_invitations", $env->url("users/sources_invitations"), $invitations_title, 34);
$env->set_link("menu_top/groupes", $env->url("sources/groupe"), "Groupes", 10);
$env->set_link("menu_top/albums", $env->url("sources/album"), "Albums", 11);
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){
+ $data = $env->data();
+ if(
+ ($data->config("site_name") == "mtweb")
+ && (($plugins = $env->plugins()) !== false)
+ && (count($plugins) == 1)
+ ){
+ $data->set_config("site_name", "SourceML");
+ }
return true;
}
function disable($env){
+ $data = $env->data();
+ if(
+ ($data->config("site_name") == "SourceML")
+ && (($plugins = $env->plugins()) !== false)
+ && (count($plugins) == 1)
+ ){
+ $data->set_config("site_name", "mtweb");
+ }
return true;
}
- // ---------------------------------------------------------------------------------
- // install
- //
-
function install($env){
+ $data = $env->data();
+ $res = true;
if(
$env->bdd("sgbd") == "mysql"
|| $env->bdd("sgbd") == "pdo_mysql"
- ) return $this->install_mysql($env);
- return false;
+ ){
+ $data->load_modules($env->path("mw_dir")."plugins/mw_sourceml/app/", "data/modules/sql/");
+ $res = $data->mw_sourceml_install_mysql($this, $env);
+ }
+ elseif(
+ $env->bdd("sgbd") == "pdo_sqlite"
+ ){
+ $data->load_modules($env->path("mw_dir")."plugins/mw_sourceml/app/", "data/modules/sql/");
+ $res = $data->mw_sourceml_install_sqlite($this, $env);
+ }
+ elseif(
+ $env->bdd("sgbd") == "xml"
+ ){
+ $data->load_modules($env->path("mw_dir")."plugins/mw_sourceml/app/", "data/modules/xml/");
+ $res = $data->mw_sourceml_install_xml($this, $env);
+ }
+ else{
+ $res = "Mode de stockage pour Mtweb (".$env->bdd("sgbd").") non supporté par SourceML";
+ }
+ return $res;
}
- function install_mysql($env){
- $data = $env->data();
- $sgbd = $data->sgbd();
- try{
- $EXISTS =
- $sgbd->table_exists("#--sml_authors")
- || $sgbd->table_exists("#--sml_classes")
- || $sgbd->table_exists("#--sml_licences")
- || $sgbd->table_exists("#--sml_sources")
- || $sgbd->table_exists("#--sml_sources_access")
- || $sgbd->table_exists("#--sml_sources_authors")
- || $sgbd->table_exists("#--sml_sources_infos")
- || $sgbd->table_exists("#--sml_source_cache")
- || $sgbd->table_exists("#--sml_source_compositions")
- || $sgbd->table_exists("#--sml_source_derivations")
- || $sgbd->table_exists("#--sml_source_documents")
- || $sgbd->table_exists("#--sml_sources_invitations");
- }
- catch(Exception $e){
- return "impossible de savoir si les tables existent deja";
- }
- if($EXISTS){
- return "des tables existent deja en base. installation annulee";
- }
- try{
- $sql =
- "SET SQL_MODE=\"NO_AUTO_VALUE_ON_ZERO\"";
- $sgbd->query($sql);
-
- $sql =
- "CREATE TABLE `#--sml_authors`("
- ." `id` int(11) NOT NULL AUTO_INCREMENT,"
- ." `id_user` int(11) NOT NULL,"
- ." `nom` varchar(255) NOT NULL,"
- ." `image` varchar(255) DEFAULT NULL,"
- ." `description` text,"
- ." `email` varchar(255) NOT NULL,"
- ." `contact_form` tinyint(4) NOT NULL,"
- ." `captcha` tinyint(4) NOT NULL,"
- ." PRIMARY KEY (`id`),"
- ." KEY `id_user` (`id_user`)"
- .") DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
- $sgbd->query($sql);
-
- $sql =
- "CREATE TABLE `#--sml_classes`("
- ." `id` int(11) NOT NULL AUTO_INCREMENT,"
- ." `nom` varchar(255) NOT NULL,"
- ." PRIMARY KEY (`id`)"
- .") DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
- $sgbd->query($sql);
-
- $sql =
- "CREATE TABLE `#--sml_licences`("
- ." `id` int(11) NOT NULL AUTO_INCREMENT,"
- ." `nom` varchar(255) NOT NULL,"
- ." `url` varchar(255) NOT NULL,"
- ." PRIMARY KEY (`id`)"
- .") DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
- $sgbd->query($sql);
-
- $sql =
- "CREATE TABLE `#--sml_sources`("
- ." `id` int(11) NOT NULL AUTO_INCREMENT,"
- ." `id_class` int(11) NOT NULL,"
- ." `reference` varchar(255) DEFAULT NULL,"
- ." `titre` varchar(255) DEFAULT NULL,"
- ." `licence` int(11) DEFAULT NULL,"
- ." `date_creation` date DEFAULT NULL,"
- ." `date_inscription` datetime NOT NULL,"
- ." PRIMARY KEY (`id`),"
- ." KEY `id_class` (`id_class`),"
- ." KEY `licence` (`licence`)"
- .") DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
- $sgbd->query($sql);
-
- $sql =
- "CREATE TABLE `#--sml_sources_access`("
- ." `id` int(11) NOT NULL AUTO_INCREMENT,"
- ." `nom` varchar(255) NOT NULL,"
- ." `intitule` varchar(255) NOT NULL,"
- ." PRIMARY KEY (`id`)"
- .") DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
- $sgbd->query($sql);
-
- $sql =
- "CREATE TABLE `#--sml_sources_authors`("
- ." `id` int(11) NOT NULL AUTO_INCREMENT,"
- ." `id_source` int(11) NOT NULL,"
- ." `id_author` int(11) NOT NULL,"
- ." `id_sources_access` int(11) NOT NULL,"
- ." PRIMARY KEY (`id`),"
- ." KEY `id_object` (`id_source`),"
- ." KEY `id_author` (`id_author`),"
- ." KEY `id_sources_access` (`id_sources_access`)"
- .") DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
- $sgbd->query($sql);
-
- $sql =
- "CREATE TABLE `#--sml_sources_infos`("
- ." `id` int(11) NOT NULL AUTO_INCREMENT,"
- ." `id_source` int(11) NOT NULL,"
- ." `key` varchar(255) NOT NULL,"
- ." `value` text NOT NULL,"
- ." PRIMARY KEY (`id`),"
- ." KEY `id_source` (`id_source`)"
- .") DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
- $sgbd->query($sql);
-
- $sql =
- "CREATE TABLE `#--sml_source_cache`("
- ." `id` int(11) NOT NULL AUTO_INCREMENT,"
- ." `url` varchar(255) NOT NULL,"
- ." `id_source` int(11) NOT NULL,"
- ." `last_update` datetime NOT NULL,"
- ." PRIMARY KEY (`id`)"
- .") DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
- $sgbd->query($sql);
-
- $sql =
- "CREATE TABLE `#--sml_source_compositions`("
- ." `id` int(11) NOT NULL AUTO_INCREMENT,"
- ." `id_source` int(11) NOT NULL,"
- ." `id_composition` int(11) NOT NULL,"
- ." PRIMARY KEY (`id`),"
- ." KEY `id_source` (`id_source`),"
- ." KEY `id_composition` (`id_composition`)"
- .") DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
- $sgbd->query($sql);
-
- $sql =
- "CREATE TABLE `#--sml_source_derivations`("
- ." `id` int(11) NOT NULL AUTO_INCREMENT,"
- ." `id_source` int(11) NOT NULL,"
- ." `derivation` varchar(255) NOT NULL,"
- ." PRIMARY KEY (`id`),"
- ." KEY `derivation` (`derivation`)"
- .") DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
- $sgbd->query($sql);
-
- $sql =
- "CREATE TABLE `#--sml_source_documents`("
- ." `id` int(11) NOT NULL AUTO_INCREMENT,"
- ." `id_source` int(11) NOT NULL,"
- ." `nom` varchar(255) NOT NULL,"
- ." `url` varchar(255) NOT NULL,"
- ." PRIMARY KEY (`id`),"
- ." KEY `id_source` (`id_source`)"
- .") DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
- $sgbd->query($sql);
-
- $sql =
- "CREATE TABLE `#--sml_sources_invitations`("
- ." `id` INT(11) NOT NULL AUTO_INCREMENT,"
- ." `id_user` INT(11) NOT NULL,"
- ." `id_source` INT(11) NOT NULL,"
- ." `id_author` INT(11) NOT NULL,"
- ." `id_sources_access` INT(11) NOT NULL,"
- ." `date_invitation` datetime NOT NULL,"
- ." PRIMARY KEY (`id`)"
- .")";
- $sgbd->query($sql);
-
- }
- catch(Exception $e){
- return "imposible de creer les tables en base";
- }
- try{
- $sql =
- "INSERT INTO `#--sml_licences` (`id`, `nom`, `url`) VALUES"
- ."(1, 'Creative commons by-sa 2.0', 'http://creativecommons.org/licenses/by-sa/2.0/deed.fr'),"
- ."(2, 'Creative Commons by-nc-nd 2.5', 'http://creativecommons.org/licenses/by-nc-nd/2.5/'),"
- ."(3, 'Creative Commons by-nc-sa 2.5', 'http://creativecommons.org/licenses/by-nc-sa/2.5/'),"
- ."(4, 'Creative Commons by-nc 2.5', 'http://creativecommons.org/licenses/by-nc/2.5/'),"
- ."(5, 'Creative Commons by-nd 2.5', 'http://creativecommons.org/licenses/by-nd/2.5/'),"
- ."(6, 'Creative Commons by-sa 2.5', 'http://creativecommons.org/licenses/by-sa/2.5/'),"
- ."(7, 'Creative Commons by 2.5', 'http://creativecommons.org/licenses/by/2.5/'),"
- ."(8, 'Licence Art Libre', 'http://artlibre.org/licence/lal/'),"
- ."(9, 'Licence C Reaction', 'http://morne.free.fr/Necktar7/creactionfr.htm'),"
- ."(10, 'Yellow OpenMusic License', 'http://openmusic.linuxtag.org/yellow.html'),"
- ."(11, 'Green OpenMusic License', 'http://openmusic.linuxtag.org/green.html')";
- $sgbd->query($sql);
-
- $sql =
- "INSERT INTO `#--sml_classes` (`id`, `nom`) VALUES"
- ."(1, 'album'),"
- ."(2, 'morceau'),"
- ."(3, 'piste')";
- $sgbd->query($sql);
-
- $sql =
- "INSERT INTO `mw_sml_sources_access` (`id`, `nom`, `intitule`) VALUES"\r
- ."(1, 'admin', 'administrateur'),"\r
- ."(2, 'editeur', 'éditeur'),"\r
- ."(3, 'contributeur', 'contributeur')";
- $sgbd->query($sql);
-
- }
- catch(Exception $e){
- return "les tables ont ete ajoutees en base mais impossible d'y enregistrer les valeurs par defaut.";
- }
- return true;
- }
-
- // ---------------------------------------------------------------------------------
- // uninstall
- //
-
function uninstall($env){
+ $data = $env->data();
+ $res = true;
if(
$env->bdd("sgbd") == "mysql"
|| $env->bdd("sgbd") == "pdo_mysql"
- ) return $this->uninstall_mysql($env);
- return false;
- }
-
- function uninstall_mysql($env){
- $data = $env->data();
- $sgbd = $data->sgbd();
- if(!$this->disable($env)) return "impossible de desactiver le plugin";
- try{
- $sgbd->query("DROP TABLE #--sml_authors");
- }
- catch(Exception $e){
- return "impossible de supprimer la table #--sml_authors";
- }
- try{
- $sgbd->query("DROP TABLE #--sml_classes");
- }
- catch(Exception $e){
- return "impossible de supprimer la table #--sml_classes";
- }
- try{
- $sgbd->query("DROP TABLE #--sml_licences");
- }
- catch(Exception $e){
- return "impossible de supprimer la table #--sml_licences";
- }
- try{
- $sgbd->query("DROP TABLE #--sml_sources");
- }
- catch(Exception $e){
- return "impossible de supprimer la table #--sml_sources";
+ || $env->bdd("sgbd") == "pdo_sqlite"
+ ){
+ $data->load_modules($env->path("mw_dir")."plugins/mw_sourceml/app/", "data/modules/sql/");
+ $res = $data->mw_sourceml_uninstall_sql($this, $env);
}
- try{
- $sgbd->query("DROP TABLE #--sml_sources_access");
+ elseif(
+ $env->bdd("sgbd") == "xml"
+ ){
+ $data->load_modules($env->path("mw_dir")."plugins/mw_sourceml/app/", "data/modules/xml/");
+ $res = $data->mw_sourceml_uninstall_xml($this, $env);
}
- catch(Exception $e){
- return "impossible de supprimer la table #--sml_sources_access";
+ else{
+ $res = "Mode de stockage pour Mtweb (".$env->bdd("sgbd").") non supporté par SourceML";
}
- try{
- $sgbd->query("DROP TABLE #--sml_sources_authors");
- }
- catch(Exception $e){
- return "impossible de supprimer la table #--sml_sources_authors";
- }
- try{
- $sgbd->query("DROP TABLE #--sml_sources_infos");
- }
- catch(Exception $e){
- return "impossible de supprimer la table #--sml_sources_infos";
- }
- try{
- $sgbd->query("DROP TABLE #--sml_source_cache");
- }
- catch(Exception $e){
- return "impossible de supprimer la table #--sml_source_cache";
- }
- try{
- $sgbd->query("DROP TABLE #--sml_source_compositions");
- }
- catch(Exception $e){
- return "impossible de supprimer la table #--sml_source_compositions";
- }
- try{
- $sgbd->query("DROP TABLE #--sml_source_derivations");
- }
- catch(Exception $e){
- return "impossible de supprimer la table #--sml_source_derivations";
- }
- try{
- $sgbd->query("DROP TABLE #--sml_source_documents");
- }
- catch(Exception $e){
- return "impossible de supprimer la table #--sml_source_documents";
- }
- try{
- $sgbd->query("DROP TABLE #--sml_sources_invitations");
- }
- catch(Exception $e){
- return "impossible de supprimer la table #--sml_sources_invitations";
- }
- return true;
+ return $res;
}
}
-
-?>
\ No newline at end of file