public function prepareFieldsHolder($fieldsHolderID) { $fieldsHolderID = (string) $fieldsHolderID; if (!$fieldsHolderID) { return false; } if (!isset($this->fieldsHolders[$fieldsHolderID])) { $fieldsHolder = new SJB_FieldsHolder($fieldsHolderID); $this->fieldsHolders[$fieldsHolderID] = $fieldsHolder; $this->setCurrentFieldsHolder($fieldsHolderID); foreach ($fieldsHolder->getAFields() as $fieldOrder => $fieldInfo_) { $fieldSID = $fieldInfo_['b_field_sid']; $fieldInfo = SJB_ListingFieldManager::getFieldInfoBySID($fieldSID); if ($this->fieldCanBeShown($fieldInfo)) { if (!empty($fieldInfo_['complex'])) { $fieldsHolder->saveFieldAsActive($fieldInfo_['complex'], $fieldSID); } else { $fieldsHolder->saveFieldAsActive($fieldSID); } $fieldsHolder->setFieldValueByKey($this->getBuilderType(), $fieldOrder, array_merge($fieldInfo_, $fieldInfo), $fieldInfo_['complex']); } else { if (!empty($fieldInfo_['html'])) { $fieldsHolder->setFieldValueByKey($this->getBuilderType(), $fieldOrder, $fieldInfo_); } /* check if this field is custom field */ if (in_array($fieldSID, $this->_customFields) || substr($fieldSID, 0, 9) == 'htmlBlock') { $fieldsHolder->saveFieldAsActive($fieldSID); } } } } $this->setCurrentFieldsHolder($fieldsHolderID); }