function getData($values = array()) { $listFieldsInfo = SJB_UserProfileFieldManager::getFieldsInfoByType('list'); $multilistFieldsInfo = SJB_UserProfileFieldManager::getFieldsInfoByType('multilist'); $fieldsInfo = array_merge($listFieldsInfo, $multilistFieldsInfo); foreach ($fieldsInfo as $key => $fieldInfo) { if ($fieldInfo['user_group_sid'] == $this->user_group && 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_UserProfileFieldManager::getFieldInfoBySID($fieldsInfo[$property_name]['sid']); 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 { $result[$property_name] = isset($values[$key]) ? $values[$key] : null; } } $result = $result + $this->_getTreeValues($values); return $result; }
private static function changeLocationProperties(&$exportProperties, &$exportData) { $locationFieldsInfo = SJB_UserProfileFieldManager::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'; $exportLocationProperties[$fieldInfo['id'] . '.Address'] = $fieldInfo['id'] . '.Address'; ksort($exportLocationProperties); $exportProperties = array_merge($exportProperties, $exportLocationProperties); foreach ($exportData as $userSID => $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[$userSID] = array_merge($property, $propertyLocation); } } } } }
/** * @param int $numberOfProfiles * @return array */ public static function getFeaturedProfiles($numberOfProfiles) { $logosInfo = SJB_UserProfileFieldManager::getFieldsInfoByType('logo'); $logoFields = array(); foreach ($logosInfo as $logoInfo) { if (!empty($logoInfo['id'])) { $logoFields[] = " `{$logoInfo['id']}` != '' "; } } $whereLogo = empty($logos) ? '' : 'AND (' . implode(' OR ', $logoFields) . ')'; $usersInfo = SJB_DB::query("SELECT `sid` FROM `users` WHERE `featured`=1 AND `active`=1 {$whereLogo} ORDER BY RAND() LIMIT 0, ?n", $numberOfProfiles); $users = array(); foreach ($usersInfo as $userInfo) { $user = SJB_UserManager::getObjectBySID($userInfo['sid']); $users[] = !empty($user) ? SJB_UserManager::createTemplateStructureForUser($user) : null; } return $users; }