{
$this->configPath = "";
$this->config = "";
+ $this->dbobject = false;
}
function loadConfig($configpath)
{
error_log("loadConfig $configpath");
$this->configPath = $configpath;
- $flt = file_get_contents($configpath);
- $this->config = unserialize(base64_decode($flt));
+ try {
+ $this->dbobject = new PDO("sqlite:$configpath");
+ } catch(PDOException $exep) {
+ error_log("execpt on db open");
+ return false;
+ }
+ $this->setupTables();
}
- function getConfigVar($var)
+ function setConfig($configname, $configval)
{
- if(isset($this->config["$var"])) {
- return $this->config["$var"];
- } else return false;
+ $sql = "delete from config where configname='$configname'";
+ $this->dbobject->query($sql);
+ $sql = "insert into config values ('$configname', '$configval')";
+ $this->dbobject->query($sql);
}
- function setConfigVar($var, $value)
+ function getConfig($configname)
{
- if(is_array($this->config)) {
- foreach($this->config as $vkey => $val) {
- if($vkey == "$var") {
- error_log("reset config of $var to $value");
- $this->config[$var] = $value;
- return true;
- }
- }
- } else error_log("config isnt array");
+ $sql = "select configvar from config where configname='$configname'";
+ $res = $this->dbobject->query($sql);
+ $val = false;
+ foreach($res as $row) {
+ $val = $row[0];
+ error_log("foreach, $val\n");
+ }
- // otherwise, set it
- error_log("set config of $var to $value");
- $this->config[$var] = $value;
-
+ return $val;
}
- function delConfigVar($var)
+ function delConfig($configname)
{
- if(is_array($this->config)) {
- foreach($this->config as $vkey => $val) {
- if($vkey == "$var") {
- error_log("remove config of $var to $value");
- unset($this->config[$var]);
- return true;
- }
- }
- } else error_log("config isnt array");
+ $sql = "delete from config where configname='$configname'";
+ $this->dbobject->query($sql);
+
+ return true;
+ }
+
+ function addData($configType, $configCat, $configName, $configVal)
+ {
+ $sql = "insert into datatable values (NULL, '$configType', '$configCat', '$configName', '$configVal')";
+ $this->dbobject->query($sql);
+ //error_log("CONFIG: adddata as $sql");
}
function saveConfig()
{
- file_put_contents($this->configPath, base64_encode(serialize($this->config)));
+ // stub function for old config method reverse compatability
+ }
+
+ function getData($configType, $configCat="", $configName="")
+ {
+ $ret = null;
+ $nret = 0;
+ $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[2];
+ $ret[$nret]["category"] = $row[0];
+ $ret[$nret]["name"] = $row[1];
+ $nret++;
+ }
+ if($nret == 0) return false;
+
+ return $ret;
+ }
+
+ function delData($configType, $configCat, $configName="", $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, $configCat)
+ {
+ $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 debug()
+ function setupTables()
{
- echo "<pre>";
- echo "path: ".$this->configPath."\n";
- print_r($this->config);
- echo "</pre>";
+ $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_category" 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 $config;
+ private $dbobject;
}
-
+
function glcas_getWebConfigPath()
{
global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL;
//return false;
}
+
-?>
\ No newline at end of file
+?>