From 1a88d134b88a7bfb17b164bd03ace7aa3190b185 Mon Sep 17 00:00:00 2001 From: Neil Drumm Date: Thu, 27 Jul 2006 07:46:31 +0000 Subject: #74395 by moshe, add hook_profile_alter() to let modules alter the profile page --- modules/user/user.module | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'modules') diff --git a/modules/user/user.module b/modules/user/user.module index f9dcb4cc7..5e7019723 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -445,7 +445,7 @@ function user_search($op = 'search', $keys = NULL) { */ function user_user($type, &$edit, &$user, $category = NULL) { if ($type == 'view') { - $items[] = array('title' => t('Member for'), + $items['history'] = array('title' => t('Member for'), 'value' => format_interval(time() - $user->created), 'class' => 'member', ); @@ -1428,13 +1428,22 @@ function user_view($uid = 0) { foreach (module_list() as $module) { if ($data = module_invoke($module, 'user', 'view', '', $account)) { foreach ($data as $category => $items) { - foreach ($items as $item) { + foreach ($items as $key => $item) { $item['class'] = "$module-". $item['class']; - $fields[$category][] = $item; + $fields[$category][$key] = $item; } } } } + + // Let modules change the returned fields - useful for personal privacy + // controls. Since modules communicate changes by reference, we cannot use + // module_invoke_all(). + foreach (module_implements('profile_alter') as $module) { + $function = $module .'_profile_alter'; + $function($account, $fields); + } + drupal_set_title($account->name); return theme('user_profile', $account, $fields); } -- cgit v1.2.3