2e72ebccf9eb84ab8cf06b558e1839783a884550
[mtweb] / mw / app / data / modules / share / mw_data_auto_crud.php
1 <?php
2
3   class mw_data_auto_crud extends mw_data{
4
5     function call_data_auto_crud($method_name, $arguments){
6       $r = false;
7       $sgbd = $this->sgbd();
8
9       $env = $this->env();
10       $IS_XML = $env->bdd("sgbd") == "xml";
11       $table_exists_function = $IS_XML ? "data_exists" : "table_exists";
12
13       // desc_<table_name>()
14       if(
15             (substr($method_name, 0, 5) == "desc_")
16         &&  ($table_name = substr($method_name, 5))
17         &&  ($sgbd->$table_exists_function(($IS_XML ? "" : "#--").$table_name))
18       ){
19         $r = $this->data_desc(
20           array(
21             "table_name" => $table_name
22           )
23         );
24       }
25       // add_<table_name>(array $values)
26       if(
27             (substr($method_name, 0, 4) == "add_")
28         &&  ($table_name = substr($method_name, 4))
29         &&  ($sgbd->$table_exists_function(($IS_XML ? "" : "#--").$table_name))
30       ){
31         $r = $this->data_insert(
32           array(
33             "table_name" => $table_name,
34             "values" => $arguments[0]
35           )
36         );
37       }
38       // get_<table_name>(string $index_name, string $index_value)
39       elseif(
40             (substr($method_name, 0, 4) == "get_")
41         &&  ($table_name = substr($method_name, 4))
42         &&  ($sgbd->$table_exists_function(($IS_XML ? "" : "#--").$table_name))
43       ){
44         $r = $this->data_read(
45           array(
46             "table_name" => $table_name,
47             "index_name" => $arguments[0],
48             "index_value" => $arguments[1]
49           )
50         );
51       }
52       // list_<table_name>(array $params)
53       elseif(
54             (substr($method_name, 0, 5) == "list_")
55         &&  ($table_name = substr($method_name, 5))
56         &&  ($sgbd->$table_exists_function(($IS_XML ? "" : "#--").$table_name))
57       ){
58         $params = $arguments[0];
59         $params["table_name"] = $table_name;
60         $r = $this->data_list($params);
61       }
62       // set_<table_name>(string index_name, string index_value, array $values)
63       elseif(
64             (substr($method_name, 0, 4) == "set_")
65         &&  ($table_name = substr($method_name, 4))
66         &&  ($sgbd->$table_exists_function(($IS_XML ? "" : "#--").$table_name))
67       ){
68         $r = $this->data_update(
69           array(
70             "table_name" => $table_name,
71             "index_name" => $arguments[0],
72             "index_value" => $arguments[1],
73             "values" => $arguments[2]
74           )
75         );
76       }
77       // del_<table_name>(string $index_name, string $index_value)
78       elseif(
79             (substr($method_name, 0, 4) == "del_")
80         &&  ($table_name = substr($method_name, 4))
81         &&  ($sgbd->$table_exists_function(($IS_XML ? "" : "#--").$table_name))
82       ){
83         $r = $this->data_delete(
84           array(
85             "table_name" => $table_name,
86             "index_name" => $arguments[0],
87             "index_value" => $arguments[1]
88           )
89         );
90       }
91       return $r;
92     }
93
94   }
95
96 ?>