not sure what i did, but you can bet it was AWESOME
[glcas.git] / libglcas / config.php
index 6498046..96345b2 100644 (file)
@@ -15,7 +15,7 @@ class GLCASConfig {
                $this->configPath = $configpath;
                
                try {
-                       $this->dbobject = new PDO("sqlite:".$this->configPath);
+                       $this->dbobject = new PDO("sqlite:$configpath");
                } catch(PDOException $exep) {
                        error_log("execpt on db open");
                        return false;
@@ -36,7 +36,7 @@ class GLCASConfig {
        {
                $sql = "select configvar from config where configname='$configname'";
                $res = $this->dbobject->query($sql);
-               $val = null;
+               $val = false;
                foreach($res as $row) {
                        $val = $row[0];
                        error_log("foreach, $val\n");
@@ -53,44 +53,70 @@ class GLCASConfig {
                return true;
        }
        
-       function addData($configType, $configName, $configVal)
+       function addData($configType, $configCat, $configName, $configVal)
        {
-               $sql = "insert into datatable values (NULL, '$configType', '$configName', '$configVal')";
+               $sql = "insert into datatable values (NULL, '$configType', '$configCat', '$configName', '$configVal')";
                $this->dbobject->query($sql);
-               
+               //error_log("CONFIG: adddata as $sql");
+       }
+       
+       function saveConfig()
+       {
+               // stub function for old config method reverse compatability
        }
        
-       function getData($configType, $configName="")
+       function getData($configType, $configCat="", $configName="")
        {
                $ret = null;
                $nret = 0;
-               if($configName == "") {
-                       $sql = "select data_val,data_name from datatable where data_type='$configType'";
-               } else {
-                       $sql = "select data_val from datatable where data_type='$configType' and data_name='$configName'";
+               $haveWhere = false;
+
+               $wheredata = "where data_type='$configType'";
+               if($configCat != "") {
+                       $wheredata .= " and data_category='$configCat'";
+               }
+               
+               if($configName != "") {
+                       $wheredata .= " and data_name='$configName'";
                }
+               
+               $sql = "select data_category,data_name,data_val from datatable $wheredata";
+               //error_log("CONFIG: get via $sql");
+               
                $res = $this->dbobject->query($sql);
                
                foreach($res as $row) {
-                       $ret[$nret]["val"] = $row[0];
-                       if($configName == "") $ret[$nret]["name"] = $row[1];
+                       $ret[$nret]["val"] = $row[2];
+                       $ret[$nret]["category"] = $row[0];
+                       $ret[$nret]["name"] = $row[1];
                        $nret++;
                }
+               if($nret == 0) return false;
                
                return $ret;
        }
        
-       function delData($configType, $configName, $configVal)
+       function delData($configType, $configCat, $configName="", $configVal="")
        {
-               $sql = "delete from datatable where data_type='$configType' and data_name='$configName' and data_val='$configVal')";
+               $extrawhere = "";
+               if($configName != "") {
+                       $extrawhere = " and data_name='$configName'";
+               }
+               if($configVal != "") {
+                       $extrawhere .= " and data_val='$configVal'";
+               }
+               $sql = "delete from datatable where data_type='$configType' and data_category='$configCat' $extrawhere";
                $this->dbobject->query($sql);
+               
+               //error_log("del all data was $sql");
        }
        
-       function delAllDAta($configType, $configName)
+       function delAllDAta($configType, $configCat)
        {
-               $sql = "delete from datatable where data_type='$configType' and data_name='$configName'";
+               $sql = "delete from datatable where data_type='$configType' and data_category='$configCat'";
                //echo "sql is $sql\n";
                $this->dbobject->query($sql);
+               //error_log("del all data was $sql");
        }
        
        function setupTables()
@@ -100,7 +126,7 @@ class GLCASConfig {
                
                foreach($res as $row) {
                        if($row[0] > 0) {
-                               echo "Tables exist\n";
+                               //echo "Tables exist\n";
                                return;
                        }
                }
@@ -109,7 +135,7 @@ class GLCASConfig {
                $sql = 'CREATE TABLE "config" ( "configname" TEXT,"configvar" TEXT);';
                $this->dbobject->query($sql);
                
-               $sql = 'CREATE TABLE "datatable" ("data_id" INTEGER PRIMARY KEY AUTOINCREMENT,"data_type" TEXT,"data_name" TEXT,"data_val" TEXT);';
+               $sql = 'CREATE TABLE "datatable" ("data_id" INTEGER PRIMARY KEY AUTOINCREMENT,"data_type" TEXT,"data_category" TEXT,"data_name" TEXT,"data_val" TEXT);';
                $this->dbobject->query($sql);
 
                $sql = 'CREATE TABLE sqlite_sequence(name,seq);';