public function run()
{
sort($this->services);
$req = Request::getInstance();
$results = "";
if ($req->gp('base')) {
//$api = \geneanet\geneweb\api\genewebAPI::getInstance($req->gp('base'));
$api = \geneweb\api\genewebAPI::getInstance($req->gp('base'));
$api->setUrl(URL_API);
if ($req->g('full') == 1) {
$api->setFullInfos(true);
}
switch ($req->g('output')) {
case 'json':
$api->setOutput('json');
break;
case 'xml':
$api->setOutput('xml');
break;
}
//$meta = meta::from_sourcename($req->gp('base'));
switch ($req->gp('type')) {
case 'friend':
$api->enableModeFriend($req->gp('base'));
break;
case 'wizard':
$api->enableModeWizard($req->gp('base'));
break;
}
$filters = $req->gp('filters');
foreach ($filters as $k => $filter) {
if (is_array($filter)) {
continue;
}
$path = "filters/{$k}.cls.php";
require_once "filters/{$k}.cls.php";
$class = "\\geneweb\\api\\filters\\" . $k;
$filter = new $class();
if (isset($filters[$k . "_val"])) {
foreach ($filters[$k . "_val"] as $k2 => $v2) {
$set = "set" . ucfirst($k2);
$filter->{$set}($v2);
}
}
$api->addFilter($filter);
}
$service = $req->gp('service');
if ($req->gp('p')) {
$results = call_user_func_array(array($api, $service), $req->gp('p'));
} else {
$results = call_user_func(array($api, $service));
}
if ((string) $results == "") {
$results = "NULL";
}
if ($req->g('output') == "xml") {
$results = $this->xmlpp($results, true);
} elseif ($req->g('output') == "json") {
$results = $this->jsonpp($results);
}
$this->request = $api->lastUrl;
}
$this->results = $results;
echo "<style type='text/css'>\n\t\t\t\t\t\tinput[type='text'], input[type='submit'] {\n\t\t\t\t\t\t\tborder:1px solid gray;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t.results {\n\t\t\t\t\t\t\tborder:1px solid gray;\n\t\t\t\t\t\t\tbackground-color: #e9e9e9;\n\t\t\t\t\t\t\tmargin-bottom:40px;\n\t\t\t\t\t\t\tpadding-left:5px;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.results h2{\n\t\t\t\t\t\t\tcolor:red;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.results pre {\n\t\t\t\t\t\t\theight:400px;\n\t\t\t\t\t\t\toverflow:auto;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.request {\n\t\t\t\t\t\t\tborder:1px solid gray;\n\t\t\t\t\t\t\tbackground-color: #e9e9e9;\n\t\t\t\t\t\t\tmargin-bottom:40px;\n\t\t\t\t\t\t\tpadding-left:5px;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.request pre {\n\t\t\t\t\t\t\toverflow:auto;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t#selectbox {\n\t\t\t\t\t\t\tposition:fixed;\n\t\t\t\t\t\t\tright:20px;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>";
}