$item[\SYSTEM\DBD\APITable::FIELD_VERIFY]($params[$item[\SYSTEM\DBD\APITable::FIELD_NAME]])){ throw new \SYSTEM\LOG\ERROR('Parameter type missmacht or Missing Verifier. Param: '.$item[\SYSTEM\DBD\APITable::FIELD_NAME].' Verifier: '.$item[\SYSTEM\DBD\APITable::FIELD_VERIFY]);} $parameters_opt[] = array($item, $params[$item[\SYSTEM\DBD\APITable::FIELD_NAME]]); } } //strict check if( $strict && count($params) != (count($parameters) + count($commands)) ){ throw new \SYSTEM\LOG\ERROR('Unhandled or misshandled parameters - api query is invalid');} //Function Name $call_funcname = ""; foreach($commands as $com){ if(!\preg_match('^[0-9A-Za-z_]+$^', $com[1])){ throw new \SYSTEM\LOG\ERROR('Call Command can only have letters!');} if($com[0][\SYSTEM\DBD\APITable::FIELD_TYPE] == \SYSTEM\DBD\APITable::VALUE_TYPE_COMMAND_FLAG){ $call_funcname .= '_flag_'.$com[0][\SYSTEM\DBD\APITable::FIELD_NAME]; } else { $call_funcname .= '_'.$com[0][\SYSTEM\DBD\APITable::FIELD_NAME].'_'.\strtolower($com[1]);} } $call_funcname = substr($call_funcname, 1); //strip leading _ //Function parameters $call_funcparam = array(); foreach($parameters as $param){ $call_funcparam[] = $param[1];} //Optional Function Parameters foreach($parameters_opt as $param){ $call_funcparam[] = $param[1];} //Does function exist if(!\method_exists($apiclassname, $call_funcname)){ if($default){ return \call_user_func(array($apiclassname,'default_page'));} throw new \SYSTEM\LOG\ERROR("API call is not implemented in API: ".$call_funcname);} //Call Function return \call_user_func_array(array($apiclassname,$call_funcname),$call_funcparam); } private static function getApiTree($group){ $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ $res = $con->query('SELECT * FROM '.\SYSTEM\DBD\APITable::NAME_PG .' WHERE "'.\SYSTEM\DBD\APITable::FIELD_GROUP.'" = '.$group.' ORDER BY "'.\SYSTEM\DBD\APITable::FIELD_ID.'"'); } else { $res = $con->query('SELECT * FROM '.\SYSTEM\DBD\APITable::NAME_MYS.' WHERE `'.\SYSTEM\DBD\APITable::FIELD_GROUP.'` = '.$group.' ORDER BY '.\SYSTEM\DBD\APITable::FIELD_ID); } if(!$res){ throw new \SYSTEM\LOG\ERROR('Database Error '.pg_last_error($con));} $result = array(); while($row = $res->next()){ $result[] = $row;} return $result; } }