geneweb\api\GenewebAPI::initFilter PHP Method

initFilter() public method

public initFilter ( )
    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;
    }