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