Index: profile.module =================================================================== RCS file: /cvs/drupal/drupal/modules/profile.module,v retrieving revision 1.102 diff -u -r1.102 profile.module --- profile.module 1 Aug 2005 05:14:05 -0000 1.102 +++ profile.module 1 Aug 2005 12:31:19 -0000 @@ -70,6 +70,7 @@ } if ($fields) { + _profile_update_user_fields($fields, $account); $output .= theme('profile_block', $account, $fields, true); } @@ -164,7 +165,9 @@ $output = '
'; while ($account = db_fetch_object($result)) { - $output .= theme('profile_listing', user_load(array('uid' => $account->uid)), $fields); + $user = user_load(array('uid' => $account->uid)); + _profile_update_user_fields($fields, $user); + $output .= theme('profile_listing', $user, $fields); } $output .= theme('pager', NULL, 20); @@ -195,7 +198,9 @@ $output = '
'; while ($account = db_fetch_object($result)) { - $output .= theme('profile_listing', user_load(array('uid' => $account->uid)), $fields); + $user = user_load(array('uid' => $account->uid)); + _profile_update_user_fields($fields, $user); + $output .= theme('profile_listing', $user, $fields); } $output .= '
'; $output .= theme('pager', NULL, 20); @@ -367,6 +372,17 @@ } /** + * Helper function: update an array of user fields by calling profile_view_field + */ +function _profile_update_user_fields(&$fields, $user) { + foreach ($fields as $key => $field) { + if ($value = profile_view_field($user, $field)) { + $fields[$key]->value = $value; + } + } +} + +/** * Helper function: output a date selector */ function _profile_date_field($field, $edit) { @@ -637,7 +653,7 @@ $output .= theme('user_picture', $user); foreach ($fields as $field) { - if ($value = profile_view_field($user, $field)) { + if ($field->value) { $output .= "

$field->title:
$value

\n"; } } @@ -652,7 +668,7 @@ $output .= '
'. theme('username', $user) ."
\n"; foreach ($fields as $field) { - if ($value = profile_view_field($user, $field)) { + if ($field->value) { $output .= "
$value
\n"; } }