summaryrefslogtreecommitdiff
path: root/modules/user
diff options
context:
space:
mode:
Diffstat (limited to 'modules/user')
-rw-r--r--modules/user/user.api.php4
-rw-r--r--modules/user/user.module25
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);
}
/**