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);
                 }
             }
         }
     }
 }
Exemple #3
0
 /**
  * @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;
 }