--- /dev/null
+<?php
+
+class GLCASConfig {
+
+ function __construct()
+ {
+ $this->configPath = "";
+ $this->config = "";
+ $this->dbobject = false;
+ }
+
+ function loadConfig($configpath)
+ {
+ error_log("loadConfig $configpath");
+ $this->configPath = $configpath.".db";
+
+ try {
+ $this->dbobject = new PDO("sqlite:".$this->configPath);
+ } catch(PDOException $exep) {
+ error_log("execpt on db open");
+ return false;
+ }
+
+ $this->setupTables();
+ }
+
+ function setConfig($configname, $configval)
+ {
+ $sql = "delete from config where configname='$configname'";
+ $this->dbobject->query($sql);
+ $sql = "insert into config values ('$configname', '$configval')";
+ $this->dbobject->query($sql);
+ }
+
+ function getConfig($configname)
+ {
+ $sql = "select configvar from config where configname='$configname'";
+ $res = $this->dbobject->query($sql);
+ $val = null;
+ foreach($res as $row) {
+ $val = $row[0];
+ error_log("foreach, $val\n");
+ }
+
+ return $val;
+ }
+
+ function delConfig($configname)
+ {
+ $sql = "delete from config where configname='$configname'";
+ $this->dbobject->query($sql);
+
+ return true;
+ }
+
+ function addData($configType, $configName, $configVal)
+ {
+ $sql = "insert into datatable values (NULL, '$configType', '$configName', '$configVal')";
+ $this->dbobject->query($sql);
+
+ }
+
+ function getData($configType, $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'";
+ }
+ $res = $this->dbobject->query($sql);
+
+ foreach($res as $row) {
+ $ret[$nret]["val"] = $row[0];
+ if($configName == "") $ret[$nret]["name"] = $row[1];
+ $nret++;
+ }
+
+ return $ret;
+ }
+
+ function delData($configType, $configName, $configVal)
+ {
+ $sql = "delete from datatable where data_type='$configType' and data_name='$configName' and data_val='$configVal')";
+ $this->dbobject->query($sql);
+ }
+
+ function delAllDAta($configType, $configName)
+ {
+ $sql = "delete from datatable where data_type='$configType' and data_name='$configName'";
+ //echo "sql is $sql\n";
+ $this->dbobject->query($sql);
+ }
+
+ function setupTables()
+ {
+ $sql = "SELECT count(name) FROM sqlite_master WHERE type='table' AND name='config';";
+ $res = $this->dbobject->query($sql);
+
+ foreach($res as $row) {
+ if($row[0] > 0) {
+ echo "Tables exist\n";
+ return;
+ }
+ }
+
+
+ $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);';
+ $this->dbobject->query($sql);
+
+ $sql = 'CREATE TABLE sqlite_sequence(name,seq);';
+ $this->dbobject->query($sql);
+ }
+
+ private $configPath;
+ private $dbobject;
+
+}
+
+function glcas_getWebConfigPath()
+{
+ global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL;
+
+ // if you wish to add more places to find webconfig, add them here.
+ $configpath = false;
+ if(file_exists($WEB_ROOT_FS."/../var/glcas/webconfig")) return realpath($WEB_ROOT_FS."/../var/glcas/webconfig");
+ if(file_exists("/var/lib/glcas/webconfig")) return realpath("/var/lib/glcas/webconfig");
+ if(file_exists("/var/run/glcas/webconfig")) return realpath("/var/run/glcas/webconfig");
+
+ return $configpath;
+ //return false;
+}
+
+
+
+?>
--- /dev/null
+<?php
+require_once("../libglcas/config_new.php");
+
+$n = new GLCASConfig();
+$n->loadConfig("/tmp/.tmp.lk.db");
+
+$n->setConfig("name1", "val1");
+$n->setConfig("name2", "val2");
+$n->setConfig("name3", "val3");
+echo "configs: ".$n->getconfig("name1").", ".$n->getconfig("name2").", ".$n->getconfig("name3")."\n";
+
+$n->setConfig("name3", "newval3");
+echo "configs: ".$n->getconfig("name1").", ".$n->getconfig("name2").", ".$n->getconfig("name3")."\n";
+
+$n->delAllData("mine1", "name1");
+$n->delAllData("mine1", "name2");
+
+$n->addData("mine1", "name1", "data1" );
+$n->addData("mine1", "name1", "data2" );
+$n->addData("mine1", "name2", "data3" );
+
+$val = $n->getData("mine1");
+
+echo "val is now:\n";
+print_r($val);
+
+$val = $n->getData("mine1", "name1");
+echo "val is now:\n";
+print_r($val);
+
+
+?>
\ No newline at end of file