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