function getDataGridSelectedFields($handler) { if (isset($_REQUEST['sf'])) { $selectedFields = explode(',', unescaped($_REQUEST, 'sf')); } else { $selectedFields = $handler->getAllFieldNames(); } return $selectedFields; }
} } else { //unset order key, do not process further break; } } $filter = array(); $i = 0; //Filter filter parameters to valid enties while (isset($_GET["fk{$i}"]) && isset($_GET["fo{$i}"]) && isset($_GET["fv{$i}"])) { if ($handler->hasField(unescaped($_GET, "fk{$i}"))) { $filter[$i]['key'] = unescaped($_GET, "fk{$i}"); if (isLegalOperator(unescaped($_GET, "fo{$i}"))) { $filter[$i]['op'] = unescaped($_GET, "fo{$i}"); try { $filter[$i]['val'] = transferType($handler->getFieldType(unescaped($_GET, "fk{$i}")), unescaped($_GET, "fv{$i}")); } catch (TransferException $ex) { //Untransferable Data Type echo 'Illegal filter value: ' . $_GET["fv{$i}"]; exit; } } else { //illegal filter operator echo 'Illegal filter operator: ' . $_GET["fo{$i}"]; exit; } } else { //unknown filter key echo 'Unknown filter key: ' . $_GET["fk{$i}"]; exit; }
function getGPC($array, $key, $type = 'string', $escaped = false) { if ($type == 'checkbox') { return isset($array[$key]); } if ($escaped) { $val = escaped($array, $key); } else { $val = unescaped($array, $key); } switch ($type) { case 'int': case 'integer': settype($val, 'integer'); break; case 'float': case 'double': settype($val, 'float'); break; case 'bool': case 'boolean': settype($val, 'boolean'); break; case 'Amount': $val = new Amount($val); break; case 'AmountFormatted': $val = new Amount($val, true); break; case 'Date': $val = new Date($val); break; case 'DateFormatted': $val = new Date($val, true); break; case 'intList': case 'integerList': $arr = explode(',', $val); $val = array(); foreach ($arr as $elm) { settype($elm, 'integer'); $val[] = $elm; } break; case 'floatList': case 'doubleList': $arr = explode(',', $val); $val = array(); foreach ($arr as $elm) { settype($elm, 'float'); $val[] = $elm; } break; case 'stringList': $val = explode(',', $val); break; case 'string': default: } return $val; }
echo 'Missing Parameter q'; exit; } $dgr = new DataGridRepository($badgerDb); //Unknown DataGridHandler if no result try { $handlerData = $dgr->getHandler($_REQUEST['q']); } catch (BadgerException $ex) { echo 'Unknown DataGridHandler'; exit; } //Include file containing DataGridHandler require_once BADGER_ROOT . $handlerData['path']; //Pass query parameters, if available if (isset($_REQUEST['qp'])) { $param = unescaped($_REQUEST, 'qp'); $handler = new $handlerData['class']($badgerDb, $param); } else { $handler = new $handlerData['class']($badgerDb); } $order = getDataGridOrder($handler); $filter = getDataGridFilter($handler); $selectedFields = getDataGridSelectedFields($handler); //Prepare Handler $handler->setOrder($order); $handler->setFilter($filter); $handler->setSelectedFields($selectedFields); //Get data $rows = $handler->getAll(); $columns = $handler->getFieldNames(); $dgx = new DataGridXML($columns, $rows);