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