Example #1
0
 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]);
                 }
             }
         }
     }
 }