nouveau module "models" dans l'environnement
[mtweb] / mw / app / data / modules / share / mw_data_auto_crud.php
diff --git a/mw/app/data/modules/share/mw_data_auto_crud.php b/mw/app/data/modules/share/mw_data_auto_crud.php
new file mode 100644 (file)
index 0000000..59a7cc0
--- /dev/null
@@ -0,0 +1,91 @@
+<?php
+
+  class mw_data_auto_crud extends mw_data{
+
+    function call_data_auto_crud($method_name, $arguments){
+      $r = false;
+      $sgbd = $this->sgbd();
+      // desc_<table_name>()
+      if(
+            (substr($method_name, 0, 5) == "desc_")
+        &&  ($table_name = substr($method_name, 5))
+        &&  ($sgbd->table_exists("#--".$table_name))
+      ){
+        $r = $this->data_desc(
+          array(
+            "table_name" => $table_name
+          )
+        );
+      }
+      // add_<table_name>(array $values)
+      if(
+            (substr($method_name, 0, 4) == "add_")
+        &&  ($table_name = substr($method_name, 4))
+        &&  ($sgbd->table_exists("#--".$table_name))
+      ){
+        $r = $this->data_insert(
+          array(
+            "table_name" => $table_name,
+            "values" => $arguments[0]
+          )
+        );
+      }
+      // get_<table_name>(string $index_name, string $index_value)
+      elseif(
+            (substr($method_name, 0, 4) == "get_")
+        &&  ($table_name = substr($method_name, 4))
+        &&  ($sgbd->table_exists("#--".$table_name))
+      ){
+        $r = $this->data_read(
+          array(
+            "table_name" => $table_name,
+            "index_name" => $arguments[0],
+            "index_value" => $arguments[1]
+          )
+        );
+      }
+      // list_<table_name>(array $params)
+      elseif(
+            (substr($method_name, 0, 5) == "list_")
+        &&  ($table_name = substr($method_name, 5))
+        &&  ($sgbd->table_exists("#--".$table_name))
+      ){
+        $params = $arguments[0];
+        $params["table_name"] = $table_name;
+        $r = $this->data_list($params);
+      }
+      // set_<table_name>(string index_name, string index_value, array $values)
+      elseif(
+            (substr($method_name, 0, 4) == "set_")
+        &&  ($table_name = substr($method_name, 4))
+        &&  ($sgbd->table_exists("#--".$table_name))
+      ){
+        $r = $this->data_update(
+          array(
+            "table_name" => $table_name,
+            "index_name" => $arguments[0],
+            "index_value" => $arguments[1],
+            "values" => $arguments[2]
+          )
+        );
+      }
+      // del_<table_name>(string $index_name, string $index_value)
+      elseif(
+            (substr($method_name, 0, 4) == "del_")
+        &&  ($table_name = substr($method_name, 4))
+        &&  ($sgbd->table_exists("#--".$table_name))
+      ){
+        $r = $this->data_delete(
+          array(
+            "table_name" => $table_name,
+            "index_name" => $arguments[0],
+            "index_value" => $arguments[1]
+          )
+        );
+      }
+      return $r;
+    }
+
+  }
+
+?>
\ No newline at end of file