public function initFilter()
{
if (count($this->filters) > 0) {
$filterAPI = new \geneweb\api\object\Filters();
foreach ($this->filters as $filter) {
if ($filter instanceof filters\FilterOnlySosa) {
$filterAPI->setOnlySosa(true);
} elseif ($filter instanceof filters\FilterOnlyRecent) {
$filterAPI->setOnlyRecent(true);
} elseif ($filter instanceof filters\FilterSex) {
$filterAPI->setSex($filter->getSex());
} elseif ($filter instanceof filters\FilterNbResults) {
$filterAPI->setNbResults(true);
$isNbResults = true;
} elseif ($filter instanceof filters\FilterDateBirth || $filter instanceof filters\FilterDateDeath) {
$filterDateB = new \geneweb\api\object\FilterDate();
$filterDateB->setDay($filter->getDayBegin());
$filterDateB->setMonth($filter->getMonthBegin());
$filterDateB->setYear($filter->getYearBegin());
$filterDateE = new \geneweb\api\object\FilterDate();
$filterDateE->setDay($filter->getDayEnd());
$filterDateE->setMonth($filter->getMonthEnd());
$filterDateE->setYear($filter->getYearEnd());
$filterRange = new \geneweb\api\object\FilterDateRange();
$filterRange->setDateBegin($filterDateB);
$filterRange->setDateEnd($filterDateE);
if ($filter instanceof filters\FilterDateBirth) {
$filterAPI->setDateBirth($filterRange);
} else {
$filterAPI->setDateDeath($filterRange);
}
}
}
$fp = fopen('php://memory', 'r+b');
$r = $filterAPI->write($fp);
rewind($fp);
$data = stream_get_contents($fp);
fclose($fp);
return $data;
}
return null;
}