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";
}
}