public function deleteActiveAndUnsearchableComplexFields(&$aFields, $activeFieldsSIDs) { $activeComplexFields = SJB_FieldsHolder::getActiveComplexFields(); foreach ($aFields as $key => $aField) { if (in_array($aField['type'], $this->_unsearchableFieldTypes) || in_array($aField['id'], $this->_unsearchableFieldIDs)) { unset($aFields[$key]); } elseif (!empty($activeFieldsSIDs)) { if (in_array($aField['sid'], $activeFieldsSIDs)) { if ($aField['type'] == 'location') { $aFields[$key]['used'] = 1; } else { unset($aFields[$key]); } } } if ($aField['type'] == 'complex') { foreach ($aField['fields'] as $fieldKey => $complexFieldInfo) { if (in_array($complexFieldInfo['sid'], $activeComplexFields)) { unset($aFields[$key]['fields'][$fieldKey]); } } } elseif ($aField['type'] == 'location') { foreach ($aField['fields'] as $fieldKey => $locationFieldInfo) { if (in_array($locationFieldInfo['sid'], $activeFieldsSIDs) || $locationFieldInfo['hidden'] == 1 || $aField['id'] != 'Location' && $locationFieldInfo['id'] == 'ZipCode') { unset($aFields[$key]['fields'][$fieldKey]); } } } } }