diff options
Diffstat (limited to 'modules/user')
-rw-r--r-- | modules/user/user.api.php | 4 | ||||
-rw-r--r-- | modules/user/user.module | 25 |
2 files changed, 23 insertions, 6 deletions
diff --git a/modules/user/user.api.php b/modules/user/user.api.php index 21a10bf67..d6723db14 100644 --- a/modules/user/user.api.php +++ b/modules/user/user.api.php @@ -314,8 +314,10 @@ function hook_user_logout($account) { * The user object on which the operation is being performed. * @param $view_mode * View mode, e.g. 'full'. + * @param $langcode + * The language code used for rendering. */ -function hook_user_view($account, $view_mode) { +function hook_user_view($account, $view_mode, $langcode) { if (user_access('create blog content', $account)) { $account->content['summary']['blog'] = array( '#type' => 'user_profile_item', diff --git a/modules/user/user.module b/modules/user/user.module index 53172a83c..e5b9fa26f 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -2389,13 +2389,20 @@ function user_view_page($uid) { * A user object. * @param $view_mode * View mode, e.g. 'full'. + * @param $langcode + * (optional) A language code to use for rendering. Defaults to the global + * content language of the current request. * * @return * An array as expected by drupal_render(). */ -function user_view($account, $view_mode = 'full') { +function user_view($account, $view_mode = 'full', $langcode = NULL) { + if (!isset($langcode)) { + $langcode = $GLOBALS['language_content']->language; + } + // Retrieve all profile fields and attach to $account->content. - user_build_content($account, $view_mode); + user_build_content($account, $view_mode, $langcode); $build = $account->content; // We don't need duplicate rendering info in account->content. @@ -2405,6 +2412,7 @@ function user_view($account, $view_mode = 'full') { '#theme' => 'user_profile', '#account' => $account, '#view_mode' => $view_mode, + '#language' => $langcode, ); // Allow modules to modify the structured user. @@ -2420,18 +2428,25 @@ function user_view($account, $view_mode = 'full') { * A user object. * @param $view_mode * View mode, e.g. 'full'. + * @param $langcode + * (optional) A language code to use for rendering. Defaults to the global + * content language of the current request. */ -function user_build_content($account, $view_mode = 'full') { +function user_build_content($account, $view_mode = 'full', $langcode = NULL) { + if (!isset($langcode)) { + $langcode = $GLOBALS['language_content']->language; + } + // Remove previously built content, if exists. $account->content = array(); // Build fields content. field_attach_prepare_view('user', array($account->uid => $account), $view_mode); entity_prepare_view('user', array($account->uid => $account)); - $account->content += field_attach_view('user', $account, $view_mode); + $account->content += field_attach_view('user', $account, $view_mode, $langcode); // Populate $account->content with a render() array. - module_invoke_all('user_view', $account, $view_mode); + module_invoke_all('user_view', $account, $view_mode, $langcode); } /** |