original_string: public static function view_user_profile($userid, $courseid = 0) {
          global $CFG, $USER;
          require_once($CFG->dirroot . "/user/profile/lib.php");
  
          $params = self::validate_parameters(self::view_user_profile_parameters(),
                                              array(
                                                  'userid' => $userid,
                                                  'courseid' => $courseid
                                              ));
  
          $warnings = array();
  
          if (empty($params['userid'])) {
              $params['userid'] = $USER->id;
          }
  
          if (empty($params['courseid'])) {
              $params['courseid'] = SITEID;
          }
  
          $course = get_course($params['courseid']);
          $user = core_user::get_user($params['userid'], '*', MUST_EXIST);
          core_user::require_active_user($user);
  
          if ($course->id == SITEID) {
              $coursecontext = context_system::instance();;
          } else {
              $coursecontext = context_course::instance($course->id);
          }
          self::validate_context($coursecontext);
  
          $currentuser = $USER->id == $user->id;
          $usercontext = context_user::instance($user->id);
  
          if (!$currentuser and
                  !has_capability('moodle/user:viewdetails', $coursecontext) and
                  !has_capability('moodle/user:viewdetails', $usercontext)) {
              throw new moodle_exception('cannotviewprofile');
          }
  
          // Case like user/profile.php.
          if ($course->id == SITEID) {
              profile_view($user, $usercontext);
          } else {
              // Case like user/view.php.
              if (!$currentuser and !can_access_course($course, $user, '', true)) {
                  throw new moodle_exception('notenrolledprofile');
              }
  
              profile_view($user, $coursecontext, $course);
          }
  
          $result = array();
          $result['status'] = true;
          $result['warnings'] = $warnings;
          return $result;
      }
code: public static function view_user_profile($userid, $courseid = 0) {
          global $CFG, $USER;
          require_once($CFG->dirroot . "/user/profile/lib.php");
  
          $params = self::validate_parameters(self::view_user_profile_parameters(),
                                              array(
                                                  'userid' => $userid,
                                                  'courseid' => $courseid
                                              ));
  
          $warnings = array();
  
          if (empty($params['userid'])) {
              $params['userid'] = $USER->id;
          }
  
          if (empty($params['courseid'])) {
              $params['courseid'] = SITEID;
          }
  
          $course = get_course($params['courseid']);
          $user = core_user::get_user($params['userid'], '*', MUST_EXIST);
          core_user::require_active_user($user);
  
          if ($course->id == SITEID) {
              $coursecontext = context_system::instance();;
          } else {
              $coursecontext = context_course::instance($course->id);
          }
          self::validate_context($coursecontext);
  
          $currentuser = $USER->id == $user->id;
          $usercontext = context_user::instance($user->id);
  
          if (!$currentuser and
                  !has_capability('moodle/user:viewdetails', $coursecontext) and
                  !has_capability('moodle/user:viewdetails', $usercontext)) {
              throw new moodle_exception('cannotviewprofile');
          }
  
          // Case like user/profile.php.
          if ($course->id == SITEID) {
              profile_view($user, $usercontext);
          } else {
              // Case like user/view.php.
              if (!$currentuser and !can_access_course($course, $user, '', true)) {
                  throw new moodle_exception('notenrolledprofile');
              }
  
              profile_view($user, $coursecontext, $course);
          }
  
          $result = array();
          $result['status'] = true;
          $result['warnings'] = $warnings;
          return $result;
      }
code_tokens: public static function view_user_profile ( $ userid , $ courseid = 0 ) { global $ CFG , $ USER ; require_once ( $ CFG -> dirroot . "/user/profile/lib.php" ) ; $ params = self :: validate_parameters ( self :: view_user_profile_parameters ( ) , array ( 'userid' => $ userid , 'courseid' => $ courseid ) ) ; $ warnings = array ( ) ; if ( empty ( $ params [ 'userid' ] ) ) { $ params [ 'userid' ] = $ USER -> id ; } if ( empty ( $ params [ 'courseid' ] ) ) { $ params [ 'courseid' ] = SITEID ; } $ course = get_course ( $ params [ 'courseid' ] ) ; $ user = core_user :: get_user ( $ params [ 'userid' ] , '*' , MUST_EXIST ) ; core_user :: require_active_user ( $ user ) ; if ( $ course -> id == SITEID ) { $ coursecontext = context_system :: instance ( ) ; ; } else { $ coursecontext = context_course :: instance ( $ course -> id ) ; } self :: validate_context ( $ coursecontext ) ; $ currentuser = $ USER -> id == $ user -> id ; $ usercontext = context_user :: instance ( $ user -> id ) ; if ( ! $ currentuser and ! has_capability ( 'moodle/user:viewdetails' , $ coursecontext ) and ! has_capability ( 'moodle/user:viewdetails' , $ usercontext ) ) { throw new moodle_exception ( 'cannotviewprofile' ) ; } // Case like user/profile.php. if ( $ course -> id == SITEID ) { profile_view ( $ user , $ usercontext ) ; } else { // Case like user/view.php. if ( ! $ currentuser and ! can_access_course ( $ course , $ user , '' , true ) ) { throw new moodle_exception ( 'notenrolledprofile' ) ; } profile_view ( $ user , $ coursecontext , $ course ) ; } $ result = array ( ) ; $ result [ 'status' ] = true ; $ result [ 'warnings' ] = $ warnings ; return $ result ; }
docstring: Trigger the user profile viewed event.
  
  @param int $userid id of user
  @param int $courseid id of course
  @return array of warnings and status result
  @since Moodle 2.9
  @throws moodle_exception
docstring_tokens: Trigger the user profile viewed event .