iaField::filter PHP Method

filter() public method

public filter ( &$items, $itemName, $params = [] )
    public function filter(&$items, $itemName, $params = array())
    {
        foreach (array('page', 'where', 'filter') as $key) {
            isset($params[$key]) || ($params[$key] = false);
        }
        if ($params['page'] === false && iaCore::ACCESS_ADMIN == $this->iaCore->getAccessType()) {
            $params['page'] = 'admin';
        }
        isset($params['info']) || ($params['info'] = true);
        if ($params['filter'] !== false && !is_array($params['filter'])) {
            $params['filter'] = explode(',', $params['filter']);
        }
        $fieldsList = self::getAcoFieldsList($params['page'], $itemName, $params['where'], $params['info'], $items, $params);
        if (!is_array($items)) {
            return $fieldsList;
        }
        if (iaCore::ADMIN == $params['page']) {
            return $fieldsList;
        }
        $type = 'simple';
        if (is_array(current($items))) {
            $type = 'group';
        }
        $forPlans = array();
        $fields = array();
        $empty = array();
        foreach ($fieldsList as $key => $field) {
            $empty[$field['name']] = $field['empty_field'];
            if (!$field['for_plan'] || $field['required']) {
                $fields[] = $field['name'];
            } else {
                $forPlans[] = $field['name'];
            }
            if ($params['filter'] && in_array($field['name'], $params['filter'])) {
                unset($fieldsList[$key]);
            }
        }
        if ('simple' == $type) {
            $items = $this->_checkItem($items, $itemName, $fields, $forPlans, $empty);
        } else {
            foreach ($items as $key => $value) {
                $items[$key] = $this->_checkItem($value, $itemName, $fields, $forPlans, $empty);
            }
        }
        return $fieldsList;
    }