diff options
Diffstat (limited to 'includes/js/dojox/grid/tests/support/data.php')
-rw-r--r-- | includes/js/dojox/grid/tests/support/data.php | 379 |
1 files changed, 0 insertions, 379 deletions
diff --git a/includes/js/dojox/grid/tests/support/data.php b/includes/js/dojox/grid/tests/support/data.php deleted file mode 100644 index 1beb6f0..0000000 --- a/includes/js/dojox/grid/tests/support/data.php +++ /dev/null @@ -1,379 +0,0 @@ -<?php - // db settings - $dbserver = 'localhost'; - $dbuser = 'root'; - $dbpassword = 'root'; - - error_reporting(E_ALL); - - /* - Simple protocol: - - Inputs via POST variables. - - Output is a string that can be evaluated into a JSON - First element of the array contains return status. - - This simplified tutorial code should not be deployed without a security review. - */ - - @include "json.php"; - - // set up response encoding - header("Content-Type: text/html; charset=utf-8"); - - // util - function getPostString($inName) { - // make sure input strings are 'clean' - return mysql_real_escape_string(@$_POST[$inName]); - } - - // used for json encoding - $json = new Services_JSON(); - - function echoJson($inData) { - global $json; - // delay in ms - $delay = getPostString('delay'); - if (!empty($delay)) - usleep($delay * 1000); - echo '/* ' . $json->encode($inData) . ' */'; - } - - function error($inMessage) { - $inMessage = str_replace('"', '\\"', $inMessage); - error_log($inMessage); - //echo '/* ({error: true, message: "' . $inMessage . '"}) */'; - echoJson(array('error' => true, 'message' => $inMessage)); - exit; - } - - - function getArray($inResult, $inArray="true") { - $o = Array(); - while ($row = ($inArray ? mysql_fetch_row($inResult) : mysql_fetch_object($inResult))) - $o[] = $row; - return $o; - } - - // connect to DB - mysql_connect($dbserver, $dbuser, $dbpassword); - - // select DB - $database = getPostString("database"); - $database = ($database ? $database : $db); - if (!mysql_select_db($database)) - error('failed to select db: ' . mysql_error()); - - // select table - $table = getPostString("table"); - $table = ($table ? $table : $dbtable); - - // cache - $colCache = NULL; - $pkCache = NULL; - - // set UTF8 output (MySql > 4.0) - mysql_query("SET NAMES UTF8"); - - // server, database, table meta data - function getDatabases() { - $result = mysql_query("SHOW DATABASES"); - $output = Array(); - while ($row = mysql_fetch_row($result)) { - $r = strtolower($row[0]); - if ($r != 'mysql' && $r != 'information_schema') - $output[] = $row[0]; - } - return $output; - } - - function getTables() { - global $database; - $result = mysql_query("SHOW TABLES FROM $database"); - $output = Array(); - while ($row = mysql_fetch_row($result)) - $output[] = $row[0]; - return $output; - } - - function getColumns() { - global $table, $colCache; - if (!$colCache) { - $result = mysql_query("SHOW COLUMNS FROM `$table`"); - return getArray($result, false); - $colCache = getArray($result, false); - } - return $colCache; - } - - // returns object: $this->name, $this->index - function getPk() { - global $pkCache; - if (!$pkCache) { - $k = ''; - $columns = getColumns(); - for ($i=0; $i < count($columns); $i++) { - $c = $columns[$i]; - if ($c->Key == 'PRI') { - $k = $c->Field; - break; - } - } - $pkCache->index = $i; - $pkCache->name = $k; - } - return $pkCache; - } - - function getTableInfo() { - global $table, $database; - $c = getColumns(); - $r = rowcount(); - return array("count" => $r, "columns" => $c, "database" => $database, "table" => $table); - } - - function getOldPostPkValue() { - $pk = getPk(); - return getPostString('_o' . $pk->index); - } - - function getNewPostPkValue() { - $pk = getPk(); - return getPostString('_' . $pk->index); - } - - function getPostColumns() { - $columns = getColumns(); - for ($i=0, $a=array(), $p; (($p=getPostString("_".$i)) != ''); $i++) { - $r = new stdClass(); - $r->name = $columns[$i]->Field; - $r->value = $p; - $a[] = $r; - } - return $a; - } - - function getOrderBy() { - $ob = getPostString("orderby"); - if (is_numeric($ob)) { - $columns = getColumns(); - $ob = $columns[intval($ob)-1]->Field; - } - return $ob; - } - - function getWhere() { - $w = getPostString("where"); - return ($w ? " WHERE $w" : ""); - } - - // basic operations - function rowcount() { - global $table; - $query = "SELECT COUNT(*) FROM `$table`" . getWhere(); - $result = mysql_query($query); - if (!$result) - error("failed to perform query: $query. " . mysql_error()); - if ($row = mysql_fetch_row($result)) - return $row[0]; - else - return 0; - } - - function select($inQuery = '') { - global $table; - // built limit clause - $lim = (int)getPostString("limit"); - $off = (int)getPostString("offset"); - $limit = ($lim || $off ? " LIMIT $off, $lim" : ""); - // build order by clause - $desc = (boolean)getPostString("desc"); - $ob = getOrderBy(); - $orderby = ($ob ? " ORDER BY `" . $ob . "`" . ($desc ? " DESC" : "") : ""); - // build query - $query = ($inQuery ? $inQuery : "SELECT * FROM `$table`" . getWhere() . $orderby . $limit); - // execute query - if (!$result = mysql_query($query)) - error("failed to perform query: $query. " . mysql_error()); - // fetch each result row - return getArray($result); - } - - function reflectRow() { - global $table; - $pk = getPk(); - $key = getNewPostPkValue(); - $where = "`$pk->name`=\"$key\""; - return select("SELECT * FROM `$table` WHERE $where LIMIT 1"); - } - - function update() { - // build set clause - for ($i=0, $set = array(), $cols = getPostColumns(), $v; ($v=$cols[$i]); $i++) - $set[] = "`$v->name` = '$v->value'"; - $set = implode(', ', $set); - // our table - global $table; - // build query - $pk = getPk(); - $pkValue = getOldPostPkValue(); - $query = "UPDATE `$table` SET $set WHERE `$pk->name` = '$pkValue' LIMIT 1"; - // execute query - if (!mysql_query($query)) - error("failed to perform query: [$query]. " . - "MySql says: [" . mysql_error() ."]"); - else { - return reflectRow(); - } - } - - function insert() { - global $table; - // build values clause - for ($i=0, $values = array(), $cols = getPostColumns(), $v; ($v=$cols[$i]); $i++) - $values[] = $v->value; - $values = '"' . implode('", "', $values) . '"'; - // build query - $query = "INSERT INTO `$table` VALUES($values)"; - // execute query - if (!mysql_query($query)) - error("failed to perform query: [$query]. " . - "MySql says: [" . mysql_error() ."]"); - else { - return reflectRow(); - } - } - - function delete() { - global $table; - // build query - $n = getPostString("count"); - $pk = getPk(); - for ($i = 0, $deleted=array(); $i < $n; $i++) { - $key = getPostString("_$i"); - array_push($deleted, $key); - $query = "DELETE FROM `$table` WHERE `$pk->name`=\"$key\" LIMIT 1"; - // execute query - if (!mysql_query($query) || mysql_affected_rows() != 1) - error("failed to perform query: [$query]. " . - "Affected rows: " . mysql_affected_rows() .". " . - "MySql says: [" . mysql_error() ."]"); - } - return $deleted; - } - - // find (full text search) - function findData($inFindCol, $inFind, $inOrderBy, $inFullText) { - global $table; - $where = ($inFullText ? "WHERE MATCH(`$inFindCol`) AGAINST ('$inFind')" : "WHERE $inFindCol LIKE '$inFind'"); - $query = "SELECT * FROM $table $where $inOrderBy"; - $result = mysql_query($query); - // return rows - return getArray($result); - } - - // binary search through sorted data, supports start point ($inFindFrom) and direction ($inFindForward) - function findRow($inData, $inFindFrom=-1, $inFindForward) { - $b = -1; - $l = count($inData); - if (!$inData) - return $b; - if (!$inFindFrom==-1 || $l < 2) - $b = 0; - else { - // binary search - $t = $l-1; - $b = 0; - while ($b <= $t) { - $p = floor(($b+$t)/2); - $d = $inData[$p][0]; - if ($d < $inFindFrom) - $b = $p + 1; - else if ($d > $inFindFrom) - $t = $p - 1; - else { - $b = $p; - break; - } - } - if ($inFindFrom == $inData[$b][0]) { - // add or subtract 1 - $b = ($inFindForward ? ($b+1 > $l-1 ? 0 : $b+1) : ($b-1 < 0 ? $l-1 : $b-1) ); - } - else if (!$inFindForward) - // subtract 1 - $b = ($b-1 < 0 ? $l-1 : $b-1); - } - return $inData[$b][0]; - } - - function buildFindWhere($inFindData, $inKey, $inCol) { - $o = Array(); - foreach($inFindData as $row) - $o[] = $inCol . "='" . $row[$inKey] . "'"; - return (count($o) ? ' WHERE ' . implode(' OR ', $o) : ''); - } - - function find($inFindCol, $inFind='', $inOb='', $inFindFrom=0, $inFindForward=true, $inFullText=true) { - global $table; - // build order by clause - $desc = (boolean)getPostString("desc"); - if (!$inOb) - $inOb = getOrderBy(); - if ($inOb) - $inOb = "`" . $inOb . "`" ; - $orderby = ($inOb ? " ORDER BY $inOb " . ($desc ? " DESC" : "") : ""); - // update inputs from post - if (!$inFind) - $inFind = getPostString('findText'); - if (!$inFindCol) - $inFindCol = getPostString('findCol'); - if (empty($inFindFrom)) - $inFindFrom = getPostString('findFrom'); - $ff = getPostString('findForward'); - if ($ff) - $inFindForward = (strtolower($ff) == 'true' ? true : false); - $ft = getPostString('findFullText'); - if ($ft) - $inFullText = (strtolower($ft) == 'true' ? true : false); - - // get find data - $f = findData($inFindCol, $inFind, $orderby, $inFullText); - $pk = getPk(); - - // execute query - $where = buildFindWhere($f, $pk->index, 'f'); - $query = "SELECT Row, f FROM (SELECT @row := @row + 1 AS Row, $pk->name as f FROM `$table` $orderby) AS tempTable $where"; - mysql_query('SET @row = -1;'); - if (!$result = mysql_query($query)) - error("failed to perform query: $query. " . mysql_error()); - - // return row number - return findRow(getArray($result), $inFindFrom, $inFindForward); - } - - // our command list - $cmds = array( - "count" => "rowcount", - "select" => "select", - "update" => "update", - "insert" => "insert", - "delete" => "delete", - "find" => "find", - "databases" => "getDatabases", - "tables" => "getTables", - "columns" => "getColumns", - "info" => "getTableInfo" - ); - - // process input params - $cmd = @$_POST["command"]; - - //$cmd="select"; - - // dispatch command - $func = @$cmds[$cmd]; - if (function_exists($func)) - echoJson(call_user_func($func)); - else - error("bad command"); -?> |