Index: modules/profile.module =================================================================== RCS file: /cvs/drupal/drupal/modules/profile.module,v retrieving revision 1.105 diff -u -p -r1.105 profile.module --- modules/profile.module 25 Aug 2005 21:14:17 -0000 1.105 +++ modules/profile.module 2 Sep 2005 16:10:50 -0000 @@ -69,6 +69,7 @@ function profile_block($op = 'list', $de } if ($fields) { + _profile_update_user_fields($fields, $account); $output .= theme('profile_block', $account, $fields, true); } @@ -163,7 +164,9 @@ function profile_browse() { $output = '
'; while ($account = db_fetch_object($result)) { - $output .= theme('profile_listing', user_load(array('uid' => $account->uid)), $fields); + $account = user_load(array('uid' => $account->uid)); + _profile_update_user_fields($fields, $account); + $output .= theme('profile_listing', $account, $fields); } $output .= theme('pager', NULL, 20); @@ -194,7 +197,9 @@ function profile_browse() { $output = '
'; while ($account = db_fetch_object($result)) { - $output .= theme('profile_listing', user_load(array('uid' => $account->uid)), $fields); + $account = user_load(array('uid' => $account->uid)); + _profile_update_user_fields($fields, $account); + $output .= theme('profile_listing', $account, $fields); } $output .= '
'; $output .= theme('pager', NULL, 20); @@ -366,6 +371,17 @@ function profile_form_profile($edit, $us } /** + * Helper function: update an array of user fields by calling profile_view_field + */ +function _profile_update_user_fields(&$fields, $account) { + foreach ($fields as $key => $field) { + if ($value = profile_view_field($account, $field)) { + $fields[$key]->value = $value; + } + } +} + +/** * Helper function: output a date selector */ function _profile_date_field($field, $edit) { @@ -631,12 +647,12 @@ function profile_admin_overview() { return $output; } -function theme_profile_block($user, $fields = array()) { +function theme_profile_block($account, $fields = array()) { - $output .= theme('user_picture', $user); + $output .= theme('user_picture', $account); foreach ($fields as $field) { - if ($value = profile_view_field($user, $field)) { + if ($field->value) { $output .= "

$field->title:
$value

\n"; } } @@ -644,14 +660,14 @@ function theme_profile_block($user, $fie return $output; } -function theme_profile_listing($user, $fields = array()) { +function theme_profile_listing($account, $fields = array()) { $output = "
\n"; - $output .= theme('user_picture', $user); - $output .= '
'. theme('username', $user) ."
\n"; + $output .= theme('user_picture', $account); + $output .= '
'. theme('username', $account) ."
\n"; foreach ($fields as $field) { - if ($value = profile_view_field($user, $field)) { + if ($field->value) { $output .= "
$value
\n"; } }