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;
}