Exemple #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]);
                 }
             }
         }
     }
 }
Exemple #2
0
 /**
  * @param int $listingTypeSID
  */
 public static function setListingTypeSID($listingTypeSID)
 {
     self::$listingTypeSID = $listingTypeSID;
 }
 /**
  * @param SJB_FormBuilderData $builderData
  * @return bool
  * @throws Exception
  */
 public static function save(SJB_FormBuilderData $builderData)
 {
     $listingTypeID = $builderData->getListingTypeID();
     $listingTypeSID = SJB_ListingTypeManager::getListingTypeSIDByID($listingTypeID);
     if (!$listingTypeSID) {
         throw new Exception('Wrong listing type ID is specified');
     }
     $fieldsHolders = $builderData->getFieldsHoldersData();
     SJB_FieldsHolder::saveProcess($listingTypeSID, $fieldsHolders);
     if ($builderData->getType() == SJB_FormBuilderManager::FORM_BUILDER_TYPE_DISPLAY) {
         self::saveLayout($listingTypeID, $builderData);
     }
     return true;
 }