syntaxe POO (visibilité)
[mw_actions_logs] / app / controllers / config / actions_logs.php
1 <?php
2
3   class mw_config_actions_logs extends mw_controller{
4
5     public function index(){
6       $env = $this->env();
7       $env->run("config/actions_logs/historique");
8     }
9
10     public function historique(){
11       $env = $this->env();
12       $env->set_config(array("max_list" => 20));
13       $data = $env->data();
14       if(
15         (
16           $historique = $data->list_actions_logs(
17             array(
18               "index_name" => "id",
19               "order_by" => "date_log",
20               "order" => "DESC",
21               "offset" => isset($_GET[$env->param("start")]) ? $_GET[$env->param("start")] : 0,
22               "limit" => $env->config("max_list") ? $env->config("max_list") : null
23             )
24           )
25         ) === false
26       ){
27         $env->erreur("impossible de lire l'historique des logs");
28         return;
29       }
30       foreach($historique["list"] as $id_log => $log){
31         $historique["list"][$id_log]["get"] = $log["get"] ? @unserialize($log["get"]) : false;
32         $historique["list"][$id_log]["post"] = $log["post"] ? @unserialize($log["post"]) : false;
33       }
34       $env->set_out("historique", $historique);
35     }
36
37     public function del_historique(){
38       $env = $this->env();
39       $data = $env->data();
40       if(!$data->clear_actions_logs()){
41         $env->erreur("impossible de vider l'historique");
42         return;
43       }
44       $env->redirect(
45         $env->url("config/actions_logs/historique"),
46         "l'historique a été vidé"
47       );
48     }
49
50     public function config(){
51       $env = $this->env();
52       $data = $env->data();
53       if(($actions_logs_config = $data->get_actions_logs_config()) === false){
54         $env->erreur("impossible de lire la configuration");
55         return;
56       }
57       if($_POST){
58         $actions_logs_config["do_log"] = isset($_POST["do_log"]) ? true : false;
59         $actions_logs_config["default_log"] = ($_POST["default_log"] == "1") ? true : false;
60         $actions_logs_config["default_log_get"] = isset($_POST["default_log_get"]) ? true : false;
61         $actions_logs_config["default_log_post"] = isset($_POST["default_log_post"]) ? true : false;
62         if(!$data->set_actions_logs_config($actions_logs_config)){
63           $env->erreur("erreur lors de la mise à jour de la configuration");
64           return;
65         }
66         $env->redirect(
67           $env->url("config/actions_logs/config"),
68           "la configuration a été mise à jour"
69         );
70       }
71       $env->set_out("actions_logs_config", $actions_logs_config);
72     }
73
74     public function logs_actions(){
75       $env = $this->env();
76       $data = $env->data();
77       if(($actions_logs_config = $data->get_actions_logs_config()) === false){
78         $env->erreur("impossible de lire la configuration");
79         return;
80       }
81       if(($logs_actions = $data->list_logs_actions(array("index_name" => "id", "order_by" => "action"))) === false){
82         $env->erreur("impossible de lire la table #--logs_actions");
83         return;
84       }
85       if($_POST){
86         foreach($_POST as $key => $value){
87           if(substr($key, 0, 14) == "id_log_action_"){
88             $id_log_action = $value;
89             $log_action = array(
90               "log_get" => isset($_POST["log_get_".$id_log_action]) ? 1 : 0,
91               "log_post" => isset($_POST["log_post_".$id_log_action]) ? 1 : 0
92             );
93             if(!$data->set_logs_actions("id", $id_log_action, $log_action)){
94               $env->erreur("erreur lors de l'enregistrement des informations pour les actions");
95               return;
96             }
97           }
98         }
99         $env->redirect(
100           $env->url("config/actions_logs/logs_actions"),
101           "Les informations ont été enregistrées"
102         );
103       }
104       $env->set_out("actions_logs_config", $actions_logs_config);
105       $env->set_out("logs_actions", $logs_actions);
106     }
107
108     public function add_log_action(){
109       $env = $this->env();
110       $data = $env->data();
111       if(($actions_logs_config = $data->get_actions_logs_config()) === false){
112         $env->erreur("impossible de lire la configuration");
113         return;
114       }
115       $log_action = array(
116         "action" => "",
117         "log_get" => false,
118         "log_post" => false
119       );
120       if($_POST){
121         if($_POST["action"]){
122           if($etat = $env->valid_etat($_POST["action"])){
123             $action = $etat["mod"]."/".$etat["controller"]."/".$etat["action"];
124             if(($exists = $data->get_logs_actions("action", $action)) === false){
125               $env->erreur("impossible de savoir si cette action est déjà dans la liste");
126               return;
127             }
128             if($exists) $env->message("l'action ".$action." est déjà dans la liste");
129             $log_action["action"] = $action;
130           }
131           else $env->message("format d'action invalide");
132         }
133         else $env->message("merci de préciser une action");
134         $log_action["log_get"] = isset($_POST["log_get"]) ? true : false;
135         $log_action["log_post"] = isset($_POST["log_post"]) ? true : false;
136         if(!$env->messages()){
137           if($data->add_logs_actions($log_action)){
138             $env->redirect(
139               $env->url("config/actions_logs/logs_actions"),
140               "L'action a été ajoutée dans la liste"
141             );
142           }
143           else{
144             $env->erreur("impossible d'ajouter l'action dans la liste");
145             return;
146           }
147         }
148       }
149       $env->set_out("actions_logs_config", $actions_logs_config);
150       $env->set_out("log_action", $log_action);
151     }
152
153     public function del_log_action(){
154       $env = $this->env();
155       $data = $env->data();
156       if(!($log_action = $data->get_logs_actions("id", $_GET[$env->param("id")]))){
157         $env->erreur("impossible de lire les informations de cette action dans la liste");
158         return;
159       }
160       if(!$data->del_logs_actions("id", $log_action["id"])){
161         $env->erreur("impossible d'effacer cette action de la liste");
162         return;
163       }
164       $env->redirect(
165         $env->url("config/actions_logs/logs_actions"),
166         "l'action a été retirée de la liste"
167       );
168     }
169
170     public function del_logs_actions(){
171       $env = $this->env();
172       $data = $env->data();
173       if(!$data->clear_logs_actions()){
174         $env->erreur("impossible de vider la liste");
175         return;
176       }
177       $env->redirect(
178         $env->url("config/actions_logs/logs_actions"),
179         "la liste a été vidée"
180       );
181     }
182
183   }