mise a jour pour mtweb.0.8.1
[mw_actions_logs] / mw_actions_logs.php
1 <?php
2
3   class mw_actions_logs extends mw_plugin{
4
5     function title(){
6       return "Actions logs";
7     }
8
9     function description(){
10       return "Enregistre un historique des actions sur le site";
11     }
12
13     function init($env){
14       $env->set_link("config/actions_logs", $env->url("config/actions_logs/historique"), "Historique des actions", 50);
15       $env->set_link("config/actions_logs/config", $env->url("config/actions_logs/config"), "Configuration des logs", 20);
16       $env->set_link("config/actions_logs/logs_actions", $env->url("config/actions_logs/logs_actions"), "Liste des actions", 30);
17       return true;
18     }
19
20     function enable($env){
21       return true;
22     }
23
24     function disable($env){
25       return true;
26     }
27
28     function install($env){
29       $data = $env->data();
30       $sgbd = $data->sgbd();
31       try{
32         $EXISTS = $sgbd->table_exists("#--actions_logs");
33       }
34       catch(Exception $e){
35         return "impossible de savoir si la table #--actions_logs existe";
36       }
37       if($EXISTS){
38         return "la table #--actions_logs existe deja";
39       }
40       try{
41         $EXISTS = $sgbd->table_exists("#--logs_actions");
42       }
43       catch(Exception $e){
44         return "impossible de savoir si la table #--logs_actions existe";
45       }
46       if($EXISTS){
47         return "la table #--logs_actions existe deja";
48       }
49       try{
50         $sql =
51          "CREATE TABLE `#--actions_logs`("
52         ."  `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY"
53         .", `action` VARCHAR( 255 ) NOT NULL"
54         .", `date_log` DATETIME NOT NULL"
55         .", `login` VARCHAR( 255 ) NOT NULL"
56         .", `from_ip` VARCHAR( 127 ) NOT NULL"
57         .", `get` TEXT NULL"
58         .", `post` TEXT NULL"
59         ." ) ENGINE = InnoDB DEFAULT CHARSET=utf8;";
60         $sgbd->query($sql);
61         $sql =
62          "CREATE TABLE `#--logs_actions`("
63         ."  `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY"
64         .", `action` VARCHAR( 255 ) NOT NULL"
65         .", `log_get` TINYINT NOT NULL"
66         .", `log_post` TINYINT NOT NULL" 
67         ." ) ENGINE = InnoDB DEFAULT CHARSET=utf8;";
68         $sgbd->query($sql);
69       }
70       catch(Exception $e) { return "erreur lors de la creation des tables #--actions_logs et #--logs_actions"; }
71       return true;
72     }
73
74     function uninstall($env){
75       $data = $env->data();
76       $sgbd = $data->sgbd();
77       if(!$this->disable($env)) return "impossible de desactiver le plugin";
78       try{
79         $EXISTS = $sgbd->table_exists("#--actions_logs");
80       }
81       catch(Exception $e){
82         return "impossible de savoir si la table #--actions_logs existe";
83       }
84       if(!$EXISTS){
85         // return "la table #--actions_logs n'existe pas";
86       }
87       else{
88         try{
89           $sgbd->query("DROP TABLE #--actions_logs");
90         }
91         catch(Exception $e){
92           return "imposible de supprimer la table #--actions_logs";
93         }
94       }
95       try{
96         $EXISTS = $sgbd->table_exists("#--logs_actions");
97       }
98       catch(Exception $e){
99         return "impossible de savoir si la table #--logs_actions existe";
100       }
101       if(!$EXISTS){
102         // return "la table #--logs_actions n'existe pas";
103       }
104       else{
105         try{
106           $sgbd->query("DROP TABLE #--logs_actions");
107         }
108         catch(Exception $e){
109           return "imposible de supprimer la table #--logs_actions";
110         }
111       }
112       $data->del_config("actions_logs_do_log");
113       $data->del_config("actions_logs_default_log");
114       $data->del_config("actions_logs_default_log_get");
115       $data->del_config("actions_logs_default_log_post");
116       return true;
117     }
118
119   }
120
121 ?>