diff --git a/mod/forum/externallib.php b/mod/forum/externallib.php index cabc35051f9..a6f246c07ab 100644 --- a/mod/forum/externallib.php +++ b/mod/forum/externallib.php @@ -268,14 +268,20 @@ class mod_forum_external extends external_api { $post->children = array(); } - $user = new stdclass(); - $user->id = $post->userid; - $user = username_load_fields_from_object($user, $post, null, array('picture', 'imagealt', 'email')); - $post->userfullname = fullname($user, $canviewfullname); + if (forum_is_author_hidden($post, $forum)) { + $post->userid = null; + $post->userfullname = null; + $post->userpictureurl = null; + } else { + $user = new stdclass(); + $user->id = $post->userid; + $user = username_load_fields_from_object($user, $post, null, array('picture', 'imagealt', 'email')); + $post->userfullname = fullname($user, $canviewfullname); - $userpicture = new user_picture($user); - $userpicture->size = 1; // Size f1. - $post->userpictureurl = $userpicture->get_url($PAGE)->out(false); + $userpicture = new user_picture($user); + $userpicture->size = 1; // Size f1. + $post->userpictureurl = $userpicture->get_url($PAGE)->out(false); + } $post->subject = external_format_string($post->subject, $modcontext->id); // Rewrite embedded images URLs. @@ -467,31 +473,6 @@ class mod_forum_external extends external_api { $discussion->numreplies = (int) $replies[$discussion->discussion]->replies; } - $picturefields = explode(',', user_picture::fields()); - - // Load user objects from the results of the query. - $user = new stdclass(); - $user->id = $discussion->userid; - $user = username_load_fields_from_object($user, $discussion, null, $picturefields); - // Preserve the id, it can be modified by username_load_fields_from_object. - $user->id = $discussion->userid; - $discussion->userfullname = fullname($user, $canviewfullname); - - $userpicture = new user_picture($user); - $userpicture->size = 1; // Size f1. - $discussion->userpictureurl = $userpicture->get_url($PAGE)->out(false); - - $usermodified = new stdclass(); - $usermodified->id = $discussion->usermodified; - $usermodified = username_load_fields_from_object($usermodified, $discussion, 'um', $picturefields); - // Preserve the id (it can be overwritten due to the prefixed $picturefields). - $usermodified->id = $discussion->usermodified; - $discussion->usermodifiedfullname = fullname($usermodified, $canviewfullname); - - $userpicture = new user_picture($usermodified); - $userpicture->size = 1; // Size f1. - $discussion->usermodifiedpictureurl = $userpicture->get_url($PAGE)->out(false); - $discussion->name = external_format_string($discussion->name, $modcontext->id); $discussion->subject = external_format_string($discussion->subject, $modcontext->id); // Rewrite embedded images URLs. @@ -512,6 +493,41 @@ class mod_forum_external extends external_api { $discussion->locked = forum_discussion_is_locked($forum, $discussion); $discussion->canreply = forum_user_can_post($forum, $discussion, $USER, $cm, $course, $modcontext); + if (forum_is_author_hidden($discussion, $forum)) { + $discussion->userid = null; + $discussion->userfullname = null; + $discussion->userpictureurl = null; + + $discussion->usermodified = null; + $discussion->usermodifiedfullname = null; + $discussion->usermodifiedpictureurl = null; + } else { + $picturefields = explode(',', user_picture::fields()); + + // Load user objects from the results of the query. + $user = new stdclass(); + $user->id = $discussion->userid; + $user = username_load_fields_from_object($user, $discussion, null, $picturefields); + // Preserve the id, it can be modified by username_load_fields_from_object. + $user->id = $discussion->userid; + $discussion->userfullname = fullname($user, $canviewfullname); + + $userpicture = new user_picture($user); + $userpicture->size = 1; // Size f1. + $discussion->userpictureurl = $userpicture->get_url($PAGE)->out(false); + + $usermodified = new stdclass(); + $usermodified->id = $discussion->usermodified; + $usermodified = username_load_fields_from_object($usermodified, $discussion, 'um', $picturefields); + // Preserve the id (it can be overwritten due to the prefixed $picturefields). + $usermodified->id = $discussion->usermodified; + $discussion->usermodifiedfullname = fullname($usermodified, $canviewfullname); + + $userpicture = new user_picture($usermodified); + $userpicture->size = 1; // Size f1. + $discussion->usermodifiedpictureurl = $userpicture->get_url($PAGE)->out(false); + } + $discussions[] = $discussion; } }