diff options
author | Stanislav-Wolski <stanislau.wolski@gmail.com> | 2012-05-23 18:02:59 +0300 |
---|---|---|
committer | Stanislav-Wolski <stanislau.wolski@gmail.com> | 2012-05-23 18:02:59 +0300 |
commit | 5b2915c991c6fd26503accfc7218256917bff0d3 (patch) | |
tree | 79346eafcc9cba12adb3d2fe98e2357117a22746 /codebase/db_phpcake.php | |
parent | 20dee97f248150fdeec70dc0d8314bb1677f5eb3 (diff) | |
download | connector-php-5b2915c991c6fd26503accfc7218256917bff0d3.zip connector-php-5b2915c991c6fd26503accfc7218256917bff0d3.tar.gz connector-php-5b2915c991c6fd26503accfc7218256917bff0d3.tar.bz2 |
[add] cakephp support
Diffstat (limited to 'codebase/db_phpcake.php')
-rw-r--r-- | codebase/db_phpcake.php | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/codebase/db_phpcake.php b/codebase/db_phpcake.php new file mode 100644 index 0000000..980c9c3 --- /dev/null +++ b/codebase/db_phpcake.php @@ -0,0 +1,80 @@ +<?php +/* + @author dhtmlx.com + @license GPL, see license.txt +*/ +require_once("db_common.php"); + +//DataProcessor::$action_param ="dhx_editor_status"; + +/*! Implementation of DataWrapper for PDO + +if you plan to use it for Oracle - use Oracle connection type instead +**/ +class PHPCakeDBDataWrapper extends ArrayDBDataWrapper{ + public function select($sql){ + $res = $this->connection->find("all"); + if (sizeof($res)){ + $name = get_class($this->connection); + $temp = array(); + for ($i=sizeof($res)-1; $i>=0; $i--) + $temp[]=&$res[$i][$name]; + } + return new ArrayQueryWrapper($temp); + } + + protected function getErrorMessage(){ + $errors = $this->connection->invalidFields(); + $text = array(); + foreach ($errors as $key => $value){ + $text[] = $key." - ".$value[0]; + } + return implode("\n", $text); + } + + public function insert($data,$source){ + $name = get_class($this->connection); + $save = array(); + $temp_data = $data->get_data(); + unset($temp_data[$this->config->id['db_name']]); + unset($temp_data["!nativeeditor_status"]); + $save[$name] = $temp_data; + + if ($this->connection->save($save)){ + $data->success($this->connection->getLastInsertID()); + } else { + $data->set_response_attribute("details", $this->getErrorMessage()); + $data->invalid(); + } + } + public function delete($data,$source){ + $id = $data->get_id(); + $this->connection->delete($id); + $data->success(); + } + public function update($data,$source){ + $name = get_class($this->connection); + $save = array(); + $save[$name] = &$data->get_data(); + + if ($this->connection->save($save)){ + $data->success(); + } else { + $data->set_response_attribute("details", $this->getErrorMessage()); + $data->invalid(); + } + } + + + public function escape($str){ + throw new Exception("Not implemented"); + } + public function query($str){ + throw new Exception("Not implemented"); + } + public function get_new_id(){ + throw new Exception("Not implemented"); + } +} + +?>
\ No newline at end of file |