Craft\Neo_CriteriaModel::__ancestorOf PHP Method

__ancestorOf() protected method

protected __ancestorOf ( array $elements, Neo_BlockModel $value ) : array
$elements array
$value Neo_BlockModel
return array
    protected function __ancestorOf($elements, $value)
    {
        $this->_ancestor = $value;
        if (!$value) {
            return $elements;
        }
        $newElements = [];
        $found = false;
        $level = $value->level - 1;
        foreach (array_reverse($elements) as $element) {
            if ($level < 1) {
                break;
            } else {
                if ($element === $value) {
                    $found = true;
                } else {
                    if ($found) {
                        if ($element->level == $level) {
                            $newElements[] = $element;
                            $level--;
                        }
                    }
                }
            }
        }
        return $newElements;
    }