Example #1
0
 /**
  * <p>unset fields that must not be in search form</p>
  * <p>unset fields that are active</p>
  *
  * @param array $aFields
  */
 public function deleteActiveAndUnsearchableFields(&$aFields)
 {
     $activeFieldsSIDs = SJB_FieldsHolder::getActiveFieldsSIDs();
     switch ($this->getBuilderType()) {
         case SJB_FormBuilderManager::FORM_BUILDER_TYPE_SEARCH:
             $this->deleteActiveAndUnsearchableComplexFields($aFields, $activeFieldsSIDs);
             break;
         case SJB_FormBuilderManager::FORM_BUILDER_TYPE_DISPLAY:
             foreach ($aFields as $key => $aField) {
                 if ($aField['type'] == 'location') {
                     $fields = !empty($aField['fields']) ? $aField['fields'] : array();
                     foreach ($fields as $field) {
                         if ($field['id'] == 'ZipCode') {
                             $aFields[] = $field;
                         }
                     }
                 }
             }
         default:
             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)) {
                         unset($aFields[$key]);
                     }
                 }
             }
             break;
     }
 }