Index: profile_csv.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/profile_csv/profile_csv.module,v retrieving revision 1.2.2.2 diff -u -r1.2.2.2 profile_csv.module --- profile_csv.module 28 Aug 2006 02:55:34 -0000 1.2.2.2 +++ profile_csv.module 9 Sep 2006 22:25:25 -0000 @@ -1,4 +1,11 @@ fid, 0)) { - $fields[$row->name] = $row->type; + $fields[] = array('name' => $row->name, 'type' => $row->type, 'visibility' => $row->visibility); } } } @@ -156,12 +163,16 @@ function _profile_csv_format_user($uid = 0) { $user_data = _profile_csv_get_user($uid); - $info = array_merge($user_data, _profile_csv_get_profile($uid)); - + $profile_data = _profile_csv_get_profile($uid,$user_data['data']); + unset($user_data['data']); + $info = array_merge($user_data, $profile_data); + //all of the valid fields in ['data'] should have been picked out in _profile_csv_get_profile, so unset it + + foreach($info as $value) { $new_info[] = '"' . str_replace('"', '""', $value) . '"'; } - if (isset($new_info)) { + if (isset($new_info)) { $line = implode(",", $new_info); } $data .= trim($line) . "\n"; @@ -171,30 +182,37 @@ function _profile_csv_get_user($uid = 0) { $users = array(); - $result = db_query('SELECT u.uid, u.name, u.mail FROM {users} u WHERE u.uid = %d', $uid); + $result = db_query('SELECT u.uid, u.name, u.mail, u.data FROM {users} u WHERE u.uid = %d', $uid); while ($row = db_fetch_object($result)) { if (variable_get(PROFILE_CSV_PARAM . 'uid', 0)) $users[] = $row->uid; - + if (variable_get(PROFILE_CSV_PARAM . 'name', 0)) $users[] = $row->name; if (variable_get(PROFILE_CSV_PARAM . 'mail', 0)) - $users[] = $row->mail; + $users[] = $row->mail; + $users['data'] = unserialize($row->data); } return $users; } -function _profile_csv_get_profile($uid=0 ) { - $profile_flds = _profile_csv_get_profile_fields(); +function _profile_csv_get_profile($uid=0,$user_data=NULL) { + $profile_fields = _profile_csv_get_profile_fields(); $profile_result = array(); - foreach($profile_flds as $profile_field => $profile_field_type) { + foreach($profile_fields as $profile_field) { + if ($profile_field ['visibility'] == 4) { + //$value = try to get it from the $user_data + $value = $user_data[$profile_field['name']]; + } + else { $value = db_result(db_query("SELECT pv.value FROM {profile_fields} pf, {profile_values} pv WHERE pv.fid = pf.fid AND pf.name = '%s' - AND pv.uid = %d", $profile_field, $uid)); - if ($profile_field_type == 'date') { + AND pv.uid = %d", $profile_field['name'], $uid)); + } + if ($profile_field['type'] == 'date') { $value = unserialize($value); $value = $value['year'] .'-'. $value['month'] .'-'. $value['day']; } @@ -215,8 +233,8 @@ if (variable_get(PROFILE_CSV_PARAM . 'mail', 0)) $row[] = '"mail"'; - foreach(_profile_csv_get_profile_fields() as $name => $type) { - $row[] = '"'. $name .'"'; + foreach(_profile_csv_get_profile_fields() as $profile_field) { + $row[] = '"'. $profile_field['name'] .'"'; } return implode(",", $row) ."\n";