diff options
Diffstat (limited to 'codebase')
-rw-r--r-- | codebase/data_connector.php | 4 | ||||
-rw-r--r-- | codebase/db_adodb.php | 72 | ||||
-rw-r--r-- | codebase/db_excel.php | 5 | ||||
-rw-r--r-- | codebase/scheduler_connector.php | 2 | ||||
-rw-r--r-- | codebase/treegridmultitable_connector.php | 2 | ||||
-rw-r--r-- | codebase/treemultitable_connector.php | 2 |
6 files changed, 81 insertions, 6 deletions
diff --git a/codebase/data_connector.php b/codebase/data_connector.php index 826374d..2a4e0a3 100644 --- a/codebase/data_connector.php +++ b/codebase/data_connector.php @@ -224,7 +224,7 @@ class JSONDataConnector extends DataConnector{ $attributes = ""; foreach($this->attributes as $k=>$v) - $attributes .= ", ".$k.":\"".$v."\""; + $attributes .= ", \"".$k."\":\"".$v."\""; $extra = ""; if (!empty($this->extra_output)) @@ -234,7 +234,7 @@ class JSONDataConnector extends DataConnector{ if ($is_sections){ //extra sections foreach($this->sections as $k=>$v) - $sections .= ", ".$k.":".$v; + $sections .= ", \"".$k."\":".$v; } $dyn = ""; diff --git a/codebase/db_adodb.php b/codebase/db_adodb.php new file mode 100644 index 0000000..5250c21 --- /dev/null +++ b/codebase/db_adodb.php @@ -0,0 +1,72 @@ +<?php +/* + @author dhtmlx.com + @license GPL, see license.txt +*/ +require_once("db_common.php"); +/*! Implementation of DataWrapper for PostgreSQL +**/ +class AdoDBDataWrapper extends DBDataWrapper{ + protected $last_result; + public function query($sql){ + LogMaster::log($sql); + if (is_array($sql)) { + $res = $this->connection->SelectLimit($sql['sql'], $sql['numrows'], $sql['offset']); + } else { + $res = $this->connection->Execute($sql); + } + + if ($res===false) throw new Exception("ADODB operation failed\n".$this->connection->ErrorMsg()); + $this->last_result = $res; + return $res; + } + + public function get_next($res){ + if (!$res) + $res = $this->last_result; + + if ($res->EOF) + return false; + + $row = $res->GetRowAssoc(false); + $res->MoveNext(); + return $row; + } + + protected function get_new_id(){ + return $this->connection->Insert_ID(); + } + + public function escape($data){ + return $this->connection->addq($data); + } + + /*! escape field name to prevent sql reserved words conflict + @param data + unescaped data + @return + escaped data + */ + public function escape_name($data){ + if ((strpos($data,"`")!==false || is_int($data)) || (strpos($data,".")!==false)) + return $data; + return '`'.$data.'`'; + } + + + protected function select_query($select,$from,$where,$sort,$start,$count){ + if (!$from) + return $select; + + $sql="SELECT ".$select." FROM ".$from; + if ($where) $sql.=" WHERE ".$where; + if ($sort) $sql.=" ORDER BY ".$sort; + + if ($start || $count) { + $sql=array("sql"=>$sql,'numrows'=>$count, 'offset'=>$start); + } + return $sql; + } + +} +?>
\ No newline at end of file diff --git a/codebase/db_excel.php b/codebase/db_excel.php index 09db5b0..14050e1 100644 --- a/codebase/db_excel.php +++ b/codebase/db_excel.php @@ -34,6 +34,7 @@ class ExcelDBDataWrapper extends DBDataWrapper { public function select($source) { $path = $this->connection; $excel = PHPExcel_IOFactory::createReaderForFile($path); + $excel->setReadDataOnly(false); $excel = $excel->load($path); $excRes = new ExcelResult(); $excelWS = $excel->getActiveSheet(); @@ -68,7 +69,9 @@ class ExcelDBDataWrapper extends DBDataWrapper { for ($j = 0; $j < count($this->config->text); $j++) { $col = PHPExcel_Cell::columnIndexFromString($this->config->text[$j]['name']) - 1; $cell = $excelWS->getCellByColumnAndRow($col, $i); - if ($cell->getDataType() == 'f') { + if (PHPExcel_Shared_Date::isDateTime($cell)) { + $r[PHPExcel_Cell::stringFromColumnIndex($col)] = PHPExcel_Shared_Date::ExcelToPHP($cell->getValue()); + } else if ($cell->getDataType() == 'f') { $r[PHPExcel_Cell::stringFromColumnIndex($col)] = $cell->getCalculatedValue(); } else { $r[PHPExcel_Cell::stringFromColumnIndex($col)] = $cell->getValue(); diff --git a/codebase/scheduler_connector.php b/codebase/scheduler_connector.php index 210d843..ee0cd20 100644 --- a/codebase/scheduler_connector.php +++ b/codebase/scheduler_connector.php @@ -164,7 +164,7 @@ class JSONSchedulerConnector extends SchedulerConnector { $this->fill_collections(); $end = (!empty($this->extra_output)) ? ', "collections": {'.$this->extra_output.'}' : ''; foreach ($this->attributes as $k => $v) - $end.=", ".$k.":\"".$v."\""; + $end.=", \"".$k."\":\"".$v."\""; $end .= '}'; return $end; } diff --git a/codebase/treegridmultitable_connector.php b/codebase/treegridmultitable_connector.php index af32ca2..c380ef6 100644 --- a/codebase/treegridmultitable_connector.php +++ b/codebase/treegridmultitable_connector.php @@ -27,7 +27,7 @@ class TreeGridMultitableConnector extends TreeGridConnector{ public function xml_start(){ if (isset($_GET['id'])) { - return "<rows parent='".$this->render->level_id($_GET['id'], $this->render->get_level() - 1)."'>"; + return "<rows parent='".$this->render->level_id($_GET['id'], $this->get_level() - 1)."'>"; } else { return "<rows parent='0'>"; } diff --git a/codebase/treemultitable_connector.php b/codebase/treemultitable_connector.php index c33f4a7..09bb19b 100644 --- a/codebase/treemultitable_connector.php +++ b/codebase/treemultitable_connector.php @@ -28,7 +28,7 @@ class TreeMultitableConnector extends TreeConnector{ public function xml_start(){ if (isset($_GET[$this->parent_name])) { - return "<tree id='".($this->render->level_id($_GET[$this->parent_name], $this->render->get_level() - 1))."'>"; + return "<tree id='".($this->render->level_id($_GET[$this->parent_name], $this->get_level() - 1))."'>"; } else { return "<tree id='0'>"; } |