740a25a9221db7f5a5ff67f69b2714ba024a2ccd
[mw_sourceml] / mw_sourceml.php
1 <?php
2
3   class mw_sourceml extends mw_plugin{
4
5     function title(){
6       return "SourceML";
7     }
8
9     function description(){
10       return "Publication de sources musicales";
11     }
12
13     function init($env){
14
15       $env->set_link("admin/sourceml", $env->url("admin/sourceml"), "SourceML", 50);
16       $env->set_link("admin/sourceml/licences", $env->url("admin/licences"), "Licences", 10);
17       $env->set_link("admin/sourceml/cache", $env->url("admin/cache"), "Cache", 20);
18       $env->set_link("admin/sourceml/maintenance", $env->url("admin/maintenance"), "Maintenance", 30);
19
20       $env->set_link("users/authors", $env->url("users/groupes"), "Groupes", 30);
21       $env->set_link("users/albums", $env->url("users/albums"), "Albums", 31);
22       $env->set_link("users/morceaux", $env->url("users/morceaux"), "Morceaux", 32);
23       $env->set_link("users/pistes", $env->url("users/pistes"), "Sources", 33);
24
25       $invitations_title = "Invitations";
26       if($nb_invitations = $this->nb_invitations($env)) $invitations_title .= " (".$nb_invitations.")";
27       $env->set_link("users/sources_invitations", $env->url("users/sources_invitations"), $invitations_title, 34);
28
29       $env->set_link("menu_top/groupes", $env->url("sources/groupe"), "Groupes", 10);
30       $env->set_link("menu_top/albums", $env->url("sources/album"), "Albums", 11);
31       $env->set_link("menu_top/morceaux", $env->url("sources/morceau"), "Morceaux", 12);
32       $env->set_link("menu_top/pistes", $env->url("sources/piste"), "Sources", 13);
33
34       return true;
35     }
36
37     function nb_invitations($env){
38       if($user = $env->user()){
39         $data = $env->data();
40         if($groupes = $data->groupes($user["id"])){
41           if($invitations = $data->sources_invitations($groupes["list"], $user["id"])){
42             return $invitations["total"];
43           }
44         }
45       }
46       return 0;
47     }
48
49     function enable($env){
50       $data = $env->data();
51       if(
52             ($data->config("site_name") == "mtweb")
53         &&  (($plugins = $env->plugins()) !== false)
54         &&  (count($plugins) == 1)
55       ){
56         $data->set_config("site_name", "SourceML");
57       }
58       return true;
59     }
60
61     function disable($env){
62       $data = $env->data();
63       if(
64             ($data->config("site_name") == "SourceML")
65         &&  (($plugins = $env->plugins()) !== false)
66         &&  (count($plugins) == 1)
67       ){
68         $data->set_config("site_name", "mtweb");
69       }
70       return true;
71     }
72
73     function install($env){
74       $data = $env->data();
75       $res = true;
76       if(
77             $env->bdd("sgbd") == "mysql"
78         ||  $env->bdd("sgbd") == "pdo_mysql"
79       ){
80         $data->load_modules($env->path("mw_dir")."plugins/mw_sourceml/app/", "data/modules/sql/");
81         $res = $data->mw_sourceml_install_mysql($this, $env);
82       }
83       elseif(
84             $env->bdd("sgbd") == "pdo_sqlite"
85       ){
86         $data->load_modules($env->path("mw_dir")."plugins/mw_sourceml/app/", "data/modules/sql/");
87         $res = $data->mw_sourceml_install_sqlite($this, $env);
88       }
89       elseif(
90             $env->bdd("sgbd") == "xml"
91       ){
92         $data->load_modules($env->path("mw_dir")."plugins/mw_sourceml/app/", "data/modules/xml/");
93         $res = $data->mw_sourceml_install_xml($this, $env);
94       }
95       else{
96         $res = "Mode de stockage pour Mtweb (".$env->bdd("sgbd").") non supporté par SourceML";
97       }
98       return $res;
99     }
100
101     function uninstall($env){
102       $data = $env->data();
103       $res = true;
104       if(
105             $env->bdd("sgbd") == "mysql"
106         ||  $env->bdd("sgbd") == "pdo_mysql"
107         ||  $env->bdd("sgbd") == "pdo_sqlite"
108       ){
109         $data->load_modules($env->path("mw_dir")."plugins/mw_sourceml/app/", "data/modules/sql/");
110         $res = $data->mw_sourceml_uninstall_sql($this, $env);
111       }
112       elseif(
113             $env->bdd("sgbd") == "xml"
114       ){
115         $data->load_modules($env->path("mw_dir")."plugins/mw_sourceml/app/", "data/modules/xml/");
116         $res = $data->mw_sourceml_uninstall_xml($this, $env);
117       }
118       else{
119         $res = "Mode de stockage pour Mtweb (".$env->bdd("sgbd").") non supporté par SourceML";
120       }
121       return $res;
122     }
123
124   }