implementations sgbd dans env/sgbd
[mtweb] / mw / app / data / modules / share / mw_data_auto_crud.php
index 59a7cc0..5c4c4f5 100644 (file)
@@ -2,14 +2,19 @@
 
   class mw_data_auto_crud extends mw_data{
 
-    function call_data_auto_crud($method_name, $arguments){
+    public function call_data_auto_crud($method_name, $arguments){
       $r = false;
       $sgbd = $this->sgbd();
+
+      $env = $this->env();
+      $IS_XML = $env->bdd("sgbd") == "xml";
+      $table_exists_function = $IS_XML ? "data_exists" : "table_exists";
+
       // desc_<table_name>()
       if(
             (substr($method_name, 0, 5) == "desc_")
         &&  ($table_name = substr($method_name, 5))
-        &&  ($sgbd->table_exists("#--".$table_name))
+        &&  ($sgbd->$table_exists_function(($IS_XML ? "" : "#--").$table_name))
       ){
         $r = $this->data_desc(
           array(
@@ -21,7 +26,7 @@
       if(
             (substr($method_name, 0, 4) == "add_")
         &&  ($table_name = substr($method_name, 4))
-        &&  ($sgbd->table_exists("#--".$table_name))
+        &&  ($sgbd->$table_exists_function(($IS_XML ? "" : "#--").$table_name))
       ){
         $r = $this->data_insert(
           array(
@@ -34,7 +39,7 @@
       elseif(
             (substr($method_name, 0, 4) == "get_")
         &&  ($table_name = substr($method_name, 4))
-        &&  ($sgbd->table_exists("#--".$table_name))
+        &&  ($sgbd->$table_exists_function(($IS_XML ? "" : "#--").$table_name))
       ){
         $r = $this->data_read(
           array(
@@ -48,7 +53,7 @@
       elseif(
             (substr($method_name, 0, 5) == "list_")
         &&  ($table_name = substr($method_name, 5))
-        &&  ($sgbd->table_exists("#--".$table_name))
+        &&  ($sgbd->$table_exists_function(($IS_XML ? "" : "#--").$table_name))
       ){
         $params = $arguments[0];
         $params["table_name"] = $table_name;
@@ -58,7 +63,7 @@
       elseif(
             (substr($method_name, 0, 4) == "set_")
         &&  ($table_name = substr($method_name, 4))
-        &&  ($sgbd->table_exists("#--".$table_name))
+        &&  ($sgbd->$table_exists_function(($IS_XML ? "" : "#--").$table_name))
       ){
         $r = $this->data_update(
           array(
@@ -73,7 +78,7 @@
       elseif(
             (substr($method_name, 0, 4) == "del_")
         &&  ($table_name = substr($method_name, 4))
-        &&  ($sgbd->table_exists("#--".$table_name))
+        &&  ($sgbd->$table_exists_function(($IS_XML ? "" : "#--").$table_name))
       ){
         $r = $this->data_delete(
           array(
@@ -87,5 +92,3 @@
     }
 
   }
-
-?>
\ No newline at end of file