fonctions CRUD par defaut mtweb.0.7.2
authornicolas <nicolas@simtic.com>
Mon, 8 Apr 2013 14:23:53 +0000 (16:23 +0200)
committernicolas <nicolas@simtic.com>
Mon, 8 Apr 2013 14:23:53 +0000 (16:23 +0200)
mw/app/data/modules/sql/mw_data_crud.php
mw/app/data/mw_data.php
mw/app/init/0100_functions.php
mw/libs/empty_class.php

index 9ac527e..13aa8b1 100644 (file)
@@ -3,6 +3,82 @@
   class mw_data_crud extends mw_data{
 
     # ----------------------------------------------------------------------------------------
+    #                                                                                call_crud
+    #
+
+    function call_data_crud($method_name, $arguments){
+      $r = false;
+      $sgbd = $this->sgbd();
+      // 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(
+            "values" => $arguments[0],
+            "table_name" => $table_name
+          )
+        );
+      }
+      // 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;
+    }
+
+    # ----------------------------------------------------------------------------------------
     #                                                                                   insert
     #
 
@@ -20,7 +96,7 @@
         $attributs_values .= ($attributs_values ? ", " : "").$this->eq($attribut_value);
       }
       $attributs_names = $attributs_names ? "(".$attributs_names.")" : "";
-      $attributs_values = $attributs_values ? " VALUES (".$attributs_names.")" : "";
+      $attributs_values = $attributs_values ? " VALUES (".$attributs_values.")" : "";
       try{
         $sgbd->query("INSERT INTO `#--".$table_name."`".$attributs_names.$attributs_values);
         $res = $return_insert_id ? $sgbd->insert_id() : true;
     function data_read($params = array()){
       $sgbd = $this->sgbd();
       $table_name = isset($params["table_name"]) ? $params["table_name"] : "";
-      $index_name = isset($params[""]) ? $params["index_name"] : "";
-      $index_value = isset($params[""]) ? $params["index_value"] : "";
+      $index_name = isset($params["index_name"]) ? $params["index_name"] : "";
+      $index_value = isset($params["index_value"]) ? $params["index_value"] : "";
       if(!$table_name || !$index_name || !$index_value) return false;
       $item = array();
       try{
       $sgbd = $this->sgbd();
       $table_name = isset($params["table_name"]) ? $params["table_name"] : "";
       if(!$table_name) return false;
-      $index_name = isset($params["index_name"]) ? $params["table_index"] : "";
+      $index_name = isset($params["index_name"]) ? $params["index_name"] : "";
       $select = "SELECT `#--".$table_name."`.*";
       $from = " FROM `#--".$table_name."`";
       $where = isset($params["where"]) ? " WHERE ".$params["where"] : "";
       $sgbd = $this->sgbd();
       $table_name = isset($params["table_name"]) ? $params["table_name"] : false;
       $values = (isset($params["values"]) && is_array($params["values"])) ? $params["values"] : false;
-      $index_name = isset($params[""]) ? $params["index_name"] : false;
-      $index_value = isset($params[""]) ? $params["index_value"] : false;
+      $index_name = isset($params["index_name"]) ? $params["index_name"] : false;
+      $index_value = isset($params["index_value"]) ? $params["index_value"] : false;
       if(!$table_name || !$index_name || !$index_value || !$values) return false;
       try{
         $sql = "UPDATE `#--".$table_name."`";
         }
         $set = $set ? " SET ".$set : "";
         $where = " WHERE `".$index_name."`=".$this->eq($index_value);
-        $sgbd->query($sql);
+        $sgbd->query($sql.$set.$where);
       }
       catch(Exception $e) { return false; }
       return true;
 
     function data_delete($params = array()){
       $sgbd = $this->sgbd();
+      $table_name = isset($params["table_name"]) ? $params["table_name"] : false;
+      $index_name = isset($params["index_name"]) ? $params["index_name"] : false;
+      $index_value = isset($params["index_value"]) ? $params["index_value"] : false;
+      if(!$table_name || !$index_name || !$index_value) return false;
       try{
         $sql = "DELETE FROM `#--".$table_name."` WHERE `".$index_name."`=".$this->eq($index_value);
         $sgbd->query($sql);
index 76fc2be..1a1c359 100644 (file)
@@ -1,6 +1,11 @@
 <?php
 
   class mw_data extends empty_class{
+
+    function call_default($inst, $method_name, $arguments){
+      return $this->call_data_crud($method_name, $arguments);
+    }
+
   }
 
 ?>
\ No newline at end of file
index 061cef9..b69728d 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 
   function debug($content){
+    $content = is_bool($content) ? "bool(".($content ? "true" : "false").")" : $content;
     echo PHP_SAPI == "cli" ?
       "\n".print_r($content, true)."\n"
     : "<pre class=\"debug\">".htmlentities(print_r($content, true), ENT_QUOTES, "UTF-8")."</pre>";
index 30814be..32894ce 100644 (file)
 
     function empty_class_call($inst, $method_name, $arguments){
       $r = false;
-      $args = "";
-      foreach($arguments as $i => $arg) $args .= ($args ? ", " : "")."\$arguments[".$i."]";
-      if(isset($inst->modules)) foreach($inst->modules as $module_name => $module){
-        if(method_exists($module, $method_name)){
-          eval("\$r = \$module->".$method_name."(".$args.");");
+      if(($module = $this->get_module_for_method($inst, $method_name)) !== false){
+        $args = ""; foreach($arguments as $i => $arg) $args .= ($args ? ", " : "")."\$arguments[".$i."]";
+        eval("\$r = \$module->".$method_name."(".$args.");");
+      }
+      else $r = $this->call_default($inst, $method_name, $arguments);
+      return $r;
+    }
+
+    function get_module_for_method($inst, $method_name){
+      $module = false;
+      if(isset($inst->modules)) foreach($inst->modules as $module_name => $module_impl){
+        if(method_exists($module_impl, $method_name)){
+          $module = $module_impl;
           break;
         }
         else{
-          $r = $this->empty_class_call($module, $method_name, $arguments);
-          if($r !== false) break;
+          $module = $this->get_module_for_method($module_impl, $method_name);
+          if($module !== false) break;
         }
       }
-      return $r;
+      return $module;
+    }
+
+    function call_default($inst, $method_name, $arguments){
+      return false;
     }
 
   }