Esempio n. 1
0
 function getData($non_existed_values_flag, $values = array())
 {
     $listFieldsInfo = SJB_ListingFieldManager::getFieldsInfoByType('list');
     $multilistFieldsInfo = SJB_ListingFieldManager::getFieldsInfoByType('multilist');
     $fieldsInfo = array_merge($listFieldsInfo, $multilistFieldsInfo);
     foreach ($fieldsInfo as $key => $fieldInfo) {
         if (empty($fieldInfo['parent_sid'])) {
             $fieldsInfo[$fieldInfo['id']] = $fieldInfo;
         }
         unset($fieldsInfo[$key]);
     }
     $result = array();
     foreach ($this->properties_names as $key => $property_name) {
         if (in_array($property_name, array_keys($fieldsInfo)) && isset($values[$key])) {
             $fieldInfo = SJB_ListingFieldManager::getFieldInfoBySID($fieldsInfo[$property_name]['sid']);
             if (!empty($fieldInfo['parent_sid']) && $fieldInfo['id'] == 'State') {
                 $fieldInfo['list_values'] = SJB_StatesManager::getStatesNamesByCountry(false, true);
             }
             switch ($fieldInfo['type']) {
                 case 'list':
                     foreach ($fieldInfo['list_values'] as $listValues) {
                         if ($listValues['caption'] == $values[$key]) {
                             $result[$property_name] = $listValues['id'];
                             break;
                         }
                     }
                     break;
                 case 'multilist':
                     $multilistValues = explode(',', $values[$key]);
                     $multilistDisplayValues = array();
                     foreach ($fieldInfo['list_values'] as $listValues) {
                         if (in_array($listValues['caption'], $multilistValues)) {
                             $multilistDisplayValues[] = $listValues['id'];
                         }
                     }
                     $result[$property_name] = implode(',', $multilistDisplayValues);
                     break;
             }
         } else {
             if (strpos($property_name, 'date') && strtotime($values[$key]) == false) {
                 if ($property_name == 'activation_date') {
                     $values[$key] = date('Y-m-d H:i:s');
                 } else {
                     $values[$key] = '';
                 }
             }
             $result[$property_name] = isset($values[$key]) ? $values[$key] : null;
         }
     }
     $result = $result + $this->_getTreeValues($values, $non_existed_values_flag);
     return $result;
 }
Esempio n. 2
0
 private static function changeMonetaryProperties(&$export_properties, &$export_data)
 {
     $fieldsInfo = SJB_ListingFieldManager::getFieldsInfoByType('monetary');
     foreach ($fieldsInfo as $fieldInfo) {
         if (isset($export_properties[$fieldInfo['id']])) {
             foreach ($export_data as $user_sid => $property) {
                 $export_data[$user_sid][$fieldInfo['id']] = isset($property[$fieldInfo['id']]['value']) ? $property[$fieldInfo['id']]['value'] : '';
             }
         }
     }
 }
Esempio n. 3
0
 private static function changeLocationProperties(&$exportProperties, &$exportData)
 {
     $locationFieldsInfo = SJB_ListingFieldManager::getFieldsInfoByType('location');
     foreach ($locationFieldsInfo as $fieldInfo) {
         if (isset($exportProperties[$fieldInfo['id']])) {
             unset($exportProperties[$fieldInfo['id']]);
             $exportLocationProperties[$fieldInfo['id'] . '.Country'] = $fieldInfo['id'] . '.Country';
             $exportLocationProperties[$fieldInfo['id'] . '.State'] = $fieldInfo['id'] . '.State';
             $exportLocationProperties[$fieldInfo['id'] . '.City'] = $fieldInfo['id'] . '.City';
             $exportLocationProperties[$fieldInfo['id'] . '.ZipCode'] = $fieldInfo['id'] . '.ZipCode';
             ksort($exportLocationProperties);
             $exportProperties = array_merge($exportProperties, $exportLocationProperties);
             foreach ($exportData as $listingSID => $property) {
                 if (isset($property[$fieldInfo['id']]) && is_array($property[$fieldInfo['id']])) {
                     $propertyLocation = array();
                     foreach ($property[$fieldInfo['id']] as $locationField => $fieldValue) {
                         if ($locationField == 'Country' && !empty($locationField)) {
                             $countryInfo = SJB_CountriesManager::getCountryInfoBySID($fieldValue);
                             $fieldValue = !empty($countryInfo['country_name']) ? $countryInfo['country_name'] : '';
                         } elseif ($locationField == 'State') {
                             $stateInfo = SJB_StatesManager::getStateInfoBySID($fieldValue);
                             $fieldValue = !empty($stateInfo['state_name']) ? $stateInfo['state_name'] : '';
                         }
                         $propertyLocation[$fieldInfo['id'] . '.' . $locationField] = $fieldValue;
                     }
                     unset($property[$fieldInfo['id']]);
                     ksort($propertyLocation);
                     $exportData[$listingSID] = array_merge($property, $propertyLocation);
                 }
             }
         }
     }
 }
Esempio n. 4
0
 public static function getCurrentSearchByCriteria($criteria)
 {
     $returnArray = array();
     $locationFields = SJB_ListingFieldManager::getFieldsInfoByType('location');
     foreach ($criteria as $fieldName => $field) {
         if (!in_array($fieldName, array('listing_type', 'active', 'username', 'status', 'CompanyName', 'keywords', 'PostedWithin', 'anonymous'))) {
             $result = array();
             $fieldInfo = SJB_ListingFieldDBManager::getListingFieldInfoByID($fieldName);
             if (!$fieldInfo) {
                 foreach ($locationFields as $locationField) {
                     $locationSubFields = SJB_ListingFieldManager::getListingFieldsInfoByParentSID($locationField['sid']);
                     foreach ($locationSubFields as $locationSubField) {
                         if ($fieldName == $locationField['id'] . "_" . $locationSubField['id']) {
                             $fieldInfo = $locationSubField;
                             $fieldInfo['id'] = $locationField['id'] . "_" . $locationSubField['id'];
                         }
                     }
                 }
             }
             foreach ($field as $fieldType => $fieldValue) {
                 switch ($fieldType) {
                     case 'geo':
                         if ($fieldValue['location'] !== '') {
                             $result[$fieldName][$fieldType][$fieldValue['location']] = $fieldValue['location'];
                         }
                         break;
                     case 'location':
                         if (!empty($fieldValue['value'])) {
                             $result[$fieldName][$fieldType][$fieldValue['value']] = $fieldValue['value'];
                         }
                         break;
                     case 'monetary':
                         if (!empty($fieldValue['not_less']) && $fieldValue['not_less'] !== '') {
                             $result[$fieldName][$fieldType][$fieldValue['not_less']] = $fieldValue['not_less'];
                         }
                         if (!empty($fieldValue['not_more']) && $fieldValue['not_more'] !== '') {
                             $result[$fieldName][$fieldType][$fieldValue['not_more']] = $fieldValue['not_more'];
                         }
                         break;
                     case 'multi_like':
                         $listItem = new SJB_ListingFieldListItemManager();
                         if (is_array($fieldValue)) {
                             foreach ($fieldValue as $value) {
                                 if ($value !== '') {
                                     if ($fieldInfo['type'] == 'tree') {
                                         $name = SJB_DB::queryValue("SELECT `caption` FROM `listing_field_tree` WHERE `sid` = '{$value}'");
                                         $name = $name ? $name : '';
                                         $result[$fieldName][$fieldType][$value] = $name;
                                     } elseif ($fieldInfo['type'] == 'multilist' || $fieldInfo['type'] == 'list') {
                                         if (!empty($fieldInfo['parent_sid'])) {
                                             if ($fieldInfo['id'] == $fieldInfo['parentID'] . '_State') {
                                                 $listValues = SJB_StatesManager::getStatesNamesByCountry(false, true, $fieldInfo['display_as']);
                                             } else {
                                                 $listValues = $fieldInfo['list_values'];
                                             }
                                             foreach ($listValues as $listValue) {
                                                 if ($listValue['id'] == $value) {
                                                     $result[$fieldName][$fieldType][$value] = $listValue['caption'];
                                                     break;
                                                 }
                                             }
                                         } else {
                                             $itemInfo = $listItem->getListItemBySID($value);
                                             $caption = $itemInfo ? $itemInfo->getValue() : $value;
                                             $result[$fieldName][$fieldType][$value] = $caption;
                                         }
                                     } else {
                                         $result[$fieldName][$fieldType][$value] = $value;
                                     }
                                 }
                             }
                         } elseif ($fieldValue !== '') {
                             $itemInfo = $listItem->getListItemBySID($fieldValue);
                             $caption = $itemInfo ? $itemInfo->getValue() : $fieldValue;
                             $result[$fieldName][$fieldType][$fieldValue] = $caption;
                         }
                         break;
                     case 'tree':
                         $fieldValue = $fieldValue ? explode(',', $fieldValue) : "";
                         if (is_array($fieldValue)) {
                             foreach ($fieldValue as $value) {
                                 if ($value !== '') {
                                     $name = SJB_DB::queryValue("SELECT `caption` FROM `listing_field_tree` WHERE `sid` = '{$value}'");
                                     $name = $name ? $name : '';
                                     $result[$fieldName][$fieldType][$value] = $name;
                                 }
                             }
                         }
                         break;
                     case 'multi_like_and':
                         if (is_array($fieldValue)) {
                             $listItem = new SJB_ListingFieldListItemManager();
                             foreach ($fieldValue as $value) {
                                 if ($value !== '') {
                                     if ($fieldInfo['type'] == 'tree') {
                                         $name = SJB_DB::queryValue("SELECT `caption` FROM `listing_field_tree` WHERE `sid` = '{$value}'");
                                         $name = $name ? $name : '';
                                         $result[$fieldName][$fieldType][$value] = $name;
                                     } elseif ($fieldInfo['type'] == 'multilist' || $fieldInfo['type'] == 'list') {
                                         if (!empty($fieldInfo['parent_sid'])) {
                                             if ($fieldInfo['id'] == $fieldInfo['parentID'] . '_State') {
                                                 $listValues = SJB_StatesManager::getStatesNamesByCountry(false, true, $fieldInfo['display_as']);
                                             } else {
                                                 $listValues = $fieldInfo['list_values'];
                                             }
                                             foreach ($listValues as $listValue) {
                                                 if ($listValue['id'] == $value) {
                                                     $result[$fieldName][$fieldType][$value] = $listValue['caption'];
                                                     break;
                                                 }
                                             }
                                         } else {
                                             $itemInfo = $listItem->getListItemBySID($value);
                                             $caption = $itemInfo ? $itemInfo->getValue() : $value;
                                             $result[$fieldName][$fieldType][$value] = $caption;
                                         }
                                     } else {
                                         $result[$fieldName][$fieldType][$value] = $value;
                                     }
                                 }
                             }
                         } elseif ($fieldValue !== '') {
                             $result[$fieldName][$fieldType][$fieldValue] = $fieldValue;
                         }
                         break;
                     default:
                         if (is_array($fieldValue)) {
                             foreach ($fieldValue as $value) {
                                 if ($value !== '') {
                                     $result[$fieldName][$fieldType][$value] = $value;
                                 }
                             }
                         } elseif ($fieldValue !== '') {
                             $result[$fieldName][$fieldType][$fieldValue] = $fieldValue;
                         }
                         break;
                 }
             }
             if ($result && !empty($fieldInfo)) {
                 $returnArray[$fieldInfo['id']]['name'] = $fieldInfo['caption'];
                 $returnArray[$fieldInfo['id']]['field'] = $result[$fieldInfo['id']];
             }
         } elseif ($fieldName == 'CompanyName') {
             $result = array();
             $userFieldSID = SJB_DB::queryValue("SELECT `sid` FROM `user_profile_fields` WHERE `id` = 'CompanyName'");
             if ($userFieldSID) {
                 $fieldInfo = SJB_UserProfileFieldManager::getFieldInfoBySID($userFieldSID);
                 foreach ($field as $fieldType => $fieldValue) {
                     switch ($fieldType) {
                         case 'multi_like_and':
                             if (is_array($fieldValue)) {
                                 foreach ($fieldValue as $value) {
                                     if ($value !== '') {
                                         $result[$fieldName][$fieldType][$value] = $value;
                                     }
                                 }
                             } elseif ($fieldValue !== '') {
                                 $result[$fieldName][$fieldType][$fieldValue] = $fieldValue;
                             }
                             break;
                     }
                 }
             }
             if ($result && !empty($fieldInfo)) {
                 $returnArray[$fieldInfo['id']]['name'] = $fieldInfo['caption'];
                 $returnArray[$fieldInfo['id']]['field'] = $result[$fieldInfo['id']];
             }
         } elseif ($fieldName == 'keywords') {
             foreach ($field as $key => $val) {
                 if ($val) {
                     $returnArray['keywords']['field'][$key][$val] = $val;
                 }
             }
             if (isset($returnArray['keywords'])) {
                 $returnArray['keywords']['name'] = 'Keywords';
             }
         }
     }
     return $returnArray;
 }