0b313a610507f594568fc4e135111b3ed9827df0
[mw_thumbs] / mw_thumbs.php
1 <?php
2
3   class mw_thumbs extends mw_plugin{
4
5     function title(){
6       return "Thumbs";
7     }
8
9     function description(){
10       return "Un générateur de miniatures";
11     }
12
13     function install($env){
14       if(
15             $env->bdd("sgbd") == "mysql"
16         ||  $env->bdd("sgbd") == "pdo_mysql"
17       ){
18         return $this->install_mysql($env);
19       }
20       elseif(
21             $env->bdd("sgbd") == "pdo_sqlite"
22       ){
23         return $this->install_sqlite($env);
24       }
25       elseif(
26             $env->bdd("sgbd") == "xml"
27       ){
28         return $this->install_xml($env);
29       }
30       else{
31         return "Mode de stockage pour Mtweb (".$env->bdd("sgbd").") non supporté par mw_thumbs";
32       }
33       return true;
34     }
35
36     function install_mysql($env){
37       $data = $env->data();
38       $sgbd = $data->sgbd();
39       try{
40         $EXISTS = $sgbd->table_exists("#--thumbs");
41       }
42       catch(Exception $e){
43         return "impossible de savoir si la table #--thumbs existe";
44       }
45       if($EXISTS){
46         return "la table #--thumbs existe deja";
47       }
48       try{
49         $sql =
50          "CREATE TABLE #--thumbs("\r
51         ."  `id` int(11) NOT NULL AUTO_INCREMENT,"\r
52         ."  `src` varchar(255) NOT NULL DEFAULT '',"\r
53         ."  `src_width` int(11) NOT NULL DEFAULT '0',"\r
54         ."  `src_height` int(11) NOT NULL DEFAULT '0',"\r
55         ."  `max_width` int(11) NOT NULL DEFAULT '0',"\r
56         ."  `max_height` int(11) NOT NULL DEFAULT '0',"\r
57         ."  `thumb_file` varchar(255) NOT NULL,"\r
58         ."  `thumb_width` int(11) NOT NULL DEFAULT '0',"\r
59         ."  `thumb_height` int(11) NOT NULL DEFAULT '0',"\r
60         ."  `creation_date` datetime NOT NULL,"\r
61         ."  PRIMARY KEY (`id`)"\r
62         .")";
63         $sgbd->query($sql);
64       }
65       catch(Exception $e){
66         return "imposible de creer la table #--thumbs";
67       }
68       return true;
69     }
70
71     function install_sqlite($env){
72       $data = $env->data();
73       $sgbd = $data->sgbd();
74       try{
75         $EXISTS = $sgbd->table_exists("#--thumbs");
76       }
77       catch(Exception $e){
78         return "impossible de savoir si la table #--thumbs existe";
79       }
80       if($EXISTS){
81         return "la table #--thumbs existe deja";
82       }
83       try{
84         $sql =
85          "CREATE TABLE #--thumbs("\r
86         ."  `id` INTEGER PRIMARY KEY AUTOINCREMENT"\r
87         ."  `src` TEXT NOT NULL DEFAULT '',"\r
88         ."  `src_width` INTEGER NOT NULL DEFAULT '0',"\r
89         ."  `src_height` INTEGER NOT NULL DEFAULT '0',"\r
90         ."  `max_width` INTEGER NOT NULL DEFAULT '0',"\r
91         ."  `max_height` INTEGER NOT NULL DEFAULT '0',"\r
92         ."  `thumb_file` TEXT NOT NULL,"\r
93         ."  `thumb_width` INTEGER NOT NULL DEFAULT '0',"\r
94         ."  `thumb_height` INTEGER NOT NULL DEFAULT '0',"\r
95         ."  `creation_date` TEXT NOT NULL"\r
96         .")";
97         $sgbd->query($sql);
98       }
99       catch(Exception $e){
100         return "imposible de creer la table #--thumbs";
101       }
102       return true;
103     }
104
105     function install_xml($env){
106       $data = $env->data();
107       $sgbd = $data->sgbd();
108       $EXISTS = $sgbd->data_exists("thumbs");
109       if(!isset($EXISTS)){
110         return "impossible de savoir si la table #--thumbs existe";
111       }
112       if($EXISTS){
113         return "la table #--thumbs existe deja";
114       }
115       if(!$sgbd->create_data("thumbs")){
116         return "imposible de creer la table #--thumbs";
117       }
118       return true;
119     }
120
121     function uninstall($env){
122       if($env->bdd("sgbd") == "xml") return $this->uninstall_xml($env);
123       else return $this->uninstall_sql($env);
124     }
125
126     function uninstall_xml($env){
127       $data = $env->data();
128       $sgbd = $data->sgbd();
129       if(!$this->disable($env)) return "impossible de desactiver le plugin";
130       $EXISTS = $sgbd->data_exists("thumbs");
131       if(!isset($EXISTS)){
132         return "impossible de savoir si la table #--thumbs existe";
133       }
134       if(!$EXISTS){
135         // return "la table #--thumbs n'existe pas";
136       }
137       elseif(!$sgbd->remove_data("thumbs")){
138         return "imposible de supprimer la table #--thumbs";
139       }
140       return true;
141     }
142
143     function uninstall_sql($env){
144       $data = $env->data();
145       $sgbd = $data->sgbd();
146       if(!$this->disable($env)) return "impossible de desactiver le plugin";
147       try{
148         $EXISTS = $sgbd->table_exists("#--thumbs");
149       }
150       catch(Exception $e){
151         return "impossible de savoir si la table #--thumbs existe";
152       }
153       if(!$EXISTS){
154         // return "la table #--thumbs n'existe pas";
155       }
156       else{
157         try{
158           $sgbd->query("DROP TABLE #--thumbs");
159         }
160         catch(Exception $e){
161           return "imposible de supprimer la table #--thumbs";
162         }
163       }
164       return true;
165     }
166
167   }