FluidTYPO3\Vhs\ViewHelpers\Iterator\FilterViewHelper::render PHP Method

render() public method

Render method
public render ( mixed $subject = null, mixed $filter = null, string $propertyName = null, boolean $preserveKeys = false, boolean $invert = false, boolean $nullFilter = false ) : mixed
$subject mixed The subject iterator/array to be filtered
$filter mixed The comparison value
$propertyName string Optional property name to extract and use for comparison instead of the object; use on ObjectStorage etc. Note: supports dot-path expressions.
$preserveKeys boolean If TRUE, keys in the array are preserved - even if they are numeric
$invert boolean Invert the behavior of the view helper
$nullFilter boolean If TRUE and $filter is NULL (not set) - to filter NULL or empty values
return mixed
    public function render($subject = null, $filter = null, $propertyName = null, $preserveKeys = false, $invert = false, $nullFilter = false)
    {
        if (null === $subject) {
            $subject = $this->renderChildren();
        }
        if (null === $subject || false === is_array($subject) && false === $subject instanceof \Traversable) {
            return [];
        }
        if (false === (bool) $nullFilter && null === $filter || '' === $filter) {
            return $subject;
        }
        if (true === $subject instanceof \Traversable) {
            $subject = iterator_to_array($subject);
        }
        $items = [];
        $invert = (bool) $invert;
        $invertFlag = true === $invert ? false : true;
        foreach ($subject as $key => $item) {
            if ($invertFlag === $this->filter($item, $filter, $propertyName)) {
                $items[$key] = $item;
            }
        }
        return true === $preserveKeys ? $items : array_values($items);
    }
FilterViewHelper