be84c64bcbde8d45d9b58564e73326ac443da035
[mw_actions_logs] / app / observers / mw_observer_actions_logs.php
1 <?php
2
3   class mw_observer_actions_logs{
4
5     var $config;
6
7     function init_actions_logs(&$env){
8       $data = $env->data();
9       if(($this->config = $data->get_actions_logs_config()) === false) return false;
10       return true;
11     }
12
13     function before_action(&$env){
14       $data = $env->data();
15       $user = $env->user();
16       if(!isset($this->config)) $this->init_actions_logs($env);
17       if($this->config && $this->config["do_log"]){
18         if(($logs_actions = $data->list_logs_actions(array("index_name" => "action"))) !== false){
19           $logs_actions = $logs_actions["list"];
20         }
21         else return;
22         $log = false;
23         $current_action = $env->etat("mod")."/".$env->etat("controller")."/".$env->etat("action");
24         if($this->config["default_log"]){
25           if(!isset($logs_actions[$current_action])){
26             $log = array(
27               "action" => $current_action,
28               "login" => $user ? $user["login"] : "",
29               "from_ip" => isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : "",
30               "get" => $this->config["default_log_get"] ? serialize($_GET) : null,
31               "post" => $this->config["default_log_post"] ? serialize($_POST) : null
32             );
33           }
34         }
35         else{
36           if(isset($logs_actions[$current_action])){
37             $log = array(
38               "action" => $current_action,
39               "login" => $user ? $user["login"] : "",
40               "from_ip" => isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : "",
41               "get" => $logs_actions[$current_action]["log_get"] ? serialize($_GET) : null,
42               "post" => $logs_actions[$current_action]["log_post"] ? serialize($_POST) : null
43             );
44           }
45         }
46         if($log) $data->add_action_log($log);
47       }
48     }
49
50     function after_action(&$env){
51     }
52
53   }
54
55 ?>