draw = $_POST["draw"]; $ret->recordsTotal = 0; $ret->recordsFiltered = 0; $ret->data = array(); if (AdminLoginManager::isLogged()){ $admin = AdminLoginManager::getLogged(); if ($admin->hasRole($permissionFlagRequired)){ $dao = GlobalVariables::get("dao"); $filter = $dataFilter; $options = array('limit'=>$_POST["length"], 'skip'=>$_POST["start"]); if (sizeof($_POST["order"])>0){ foreach ($_POST["order"] as $details){ $key = $_POST["columns"][$details["column"]]["data"]; $options["sort"][$key] = strcasecmp($details["dir"], "asc")==0?1:-1; } } $models = $dao->query($useModel, $filter, $options); if (sizeof($models)>0){ foreach ($models as $model){ $result = self::getObjectFromFieldsArray($model, $exposedModel); $ret->data[] = $result; } } $ret->recordsTotal = $dao->count($useModel); $ret->recordsFiltered = $dao->count($useModel,$filter); } } return $ret; } private static function getObjectFromFieldsArray($obj,array $fieldArr){ $rval = new stdClass(); if (sizeof($fieldArr)>0){ foreach ($fieldArr as $key=>$val){ if (is_array($val)){ $rval->$key = self::getObjectFromFieldsArray($obj->$key, $val); } else { $rval->$key = $obj->$key; } } } return $rval; } public static function generateTable($backendPage, array $columns, array $htmlOpts = array()){ $tabId = "datatable_".self::$instCount; $toolbarClass = "toolbar_".self::$instCount++; $buttonDiv = ""; $buttonJs = ""; $useButtons = false; if (array_key_exists("buttons",$htmlOpts) && is_array($htmlOpts["buttons"]) && sizeof($htmlOpts["buttons"])>0){ $useButtons = true; $i = 0; foreach ($htmlOpts["buttons"] as $buttonData){ $buttonDiv.=' '; $buttonJs.='$("#'.$tabId."btn".$i.'").click(function(){'. 'if ($("tr.selected").length>0){'. 'var useForm = $("div.' . $toolbarClass . ' form");'. 'useForm.attr("action","'.$buttonData["page"].'").find("input").val($("tr.selected td:last-child").html());'. 'useForm.submit();'. '}'. '});'; } $buttonDiv.='
'; } $columns[] = array("label"=>"id","data"=>"id"); $colLabels = "