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; }
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'] : ''; } } } }
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); } } } } }
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; }