original_string: public function render_user_message_preferences($user) {
          global $CFG;
  
          // Filter out enabled, available system_configured and user_configured processors only.
          $readyprocessors = array_filter(get_message_processors(), function($processor) {
              return $processor->enabled &&
                  $processor->configured &&
                  $processor->object->is_user_configured() &&
                  // Filter out processors that don't have and message preferences to configure.
                  $processor->object->has_message_preferences();
          });
  
          $providers = array_filter(message_get_providers_for_user($user->id), function($provider) {
              return $provider->component === 'moodle';
          });
          $preferences = \core_message\api::get_all_message_preferences($readyprocessors, $providers, $user);
          $notificationlistoutput = new \core_message\output\preferences\message_notification_list($readyprocessors,
              $providers, $preferences, $user);
          $context = $notificationlistoutput->export_for_template($this);
  
          // Get the privacy settings options for being messaged.
          $privacysetting = \core_message\api::get_user_privacy_messaging_preference($user->id);
          $choices = array();
          $choices[] = [
              'value' => \core_message\api::MESSAGE_PRIVACY_ONLYCONTACTS,
              'text' => get_string('contactableprivacy_onlycontacts', 'message'),
              'checked' => ($privacysetting == \core_message\api::MESSAGE_PRIVACY_ONLYCONTACTS)
          ];
          $choices[] = [
              'value' => \core_message\api::MESSAGE_PRIVACY_COURSEMEMBER,
              'text' => get_string('contactableprivacy_coursemember', 'message'),
              'checked' => ($privacysetting == \core_message\api::MESSAGE_PRIVACY_COURSEMEMBER)
          ];
          if (!empty($CFG->messagingallusers)) {
              // Add the MESSAGE_PRIVACY_SITE option when site-wide messaging between users is enabled.
              $choices[] = [
                  'value' => \core_message\api::MESSAGE_PRIVACY_SITE,
                  'text' => get_string('contactableprivacy_site', 'message'),
                  'checked' => ($privacysetting == \core_message\api::MESSAGE_PRIVACY_SITE)
              ];
          }
          $context['privacychoices'] = $choices;
  
          return $this->render_from_template('message/message_preferences', $context);
      }
code: public function render_user_message_preferences($user) {
          global $CFG;
  
          // Filter out enabled, available system_configured and user_configured processors only.
          $readyprocessors = array_filter(get_message_processors(), function($processor) {
              return $processor->enabled &&
                  $processor->configured &&
                  $processor->object->is_user_configured() &&
                  // Filter out processors that don't have and message preferences to configure.
                  $processor->object->has_message_preferences();
          });
  
          $providers = array_filter(message_get_providers_for_user($user->id), function($provider) {
              return $provider->component === 'moodle';
          });
          $preferences = \core_message\api::get_all_message_preferences($readyprocessors, $providers, $user);
          $notificationlistoutput = new \core_message\output\preferences\message_notification_list($readyprocessors,
              $providers, $preferences, $user);
          $context = $notificationlistoutput->export_for_template($this);
  
          // Get the privacy settings options for being messaged.
          $privacysetting = \core_message\api::get_user_privacy_messaging_preference($user->id);
          $choices = array();
          $choices[] = [
              'value' => \core_message\api::MESSAGE_PRIVACY_ONLYCONTACTS,
              'text' => get_string('contactableprivacy_onlycontacts', 'message'),
              'checked' => ($privacysetting == \core_message\api::MESSAGE_PRIVACY_ONLYCONTACTS)
          ];
          $choices[] = [
              'value' => \core_message\api::MESSAGE_PRIVACY_COURSEMEMBER,
              'text' => get_string('contactableprivacy_coursemember', 'message'),
              'checked' => ($privacysetting == \core_message\api::MESSAGE_PRIVACY_COURSEMEMBER)
          ];
          if (!empty($CFG->messagingallusers)) {
              // Add the MESSAGE_PRIVACY_SITE option when site-wide messaging between users is enabled.
              $choices[] = [
                  'value' => \core_message\api::MESSAGE_PRIVACY_SITE,
                  'text' => get_string('contactableprivacy_site', 'message'),
                  'checked' => ($privacysetting == \core_message\api::MESSAGE_PRIVACY_SITE)
              ];
          }
          $context['privacychoices'] = $choices;
  
          return $this->render_from_template('message/message_preferences', $context);
      }
code_tokens: public function render_user_message_preferences ( $ user ) { global $ CFG ; // Filter out enabled, available system_configured and user_configured processors only. $ readyprocessors = array_filter ( get_message_processors ( ) , function ( $ processor ) { return $ processor -> enabled && $ processor -> configured && $ processor -> object -> is_user_configured ( ) && // Filter out processors that don't have and message preferences to configure. $ processor -> object -> has_message_preferences ( ) ; } ) ; $ providers = array_filter ( message_get_providers_for_user ( $ user -> id ) , function ( $ provider ) { return $ provider -> component === 'moodle' ; } ) ; $ preferences = \ core_message \ api :: get_all_message_preferences ( $ readyprocessors , $ providers , $ user ) ; $ notificationlistoutput = new \ core_message \ output \ preferences \ message_notification_list ( $ readyprocessors , $ providers , $ preferences , $ user ) ; $ context = $ notificationlistoutput -> export_for_template ( $ this ) ; // Get the privacy settings options for being messaged. $ privacysetting = \ core_message \ api :: get_user_privacy_messaging_preference ( $ user -> id ) ; $ choices = array ( ) ; $ choices [ ] = [ 'value' => \ core_message \ api :: MESSAGE_PRIVACY_ONLYCONTACTS , 'text' => get_string ( 'contactableprivacy_onlycontacts' , 'message' ) , 'checked' => ( $ privacysetting == \ core_message \ api :: MESSAGE_PRIVACY_ONLYCONTACTS ) ] ; $ choices [ ] = [ 'value' => \ core_message \ api :: MESSAGE_PRIVACY_COURSEMEMBER , 'text' => get_string ( 'contactableprivacy_coursemember' , 'message' ) , 'checked' => ( $ privacysetting == \ core_message \ api :: MESSAGE_PRIVACY_COURSEMEMBER ) ] ; if ( ! empty ( $ CFG -> messagingallusers ) ) { // Add the MESSAGE_PRIVACY_SITE option when site-wide messaging between users is enabled. $ choices [ ] = [ 'value' => \ core_message \ api :: MESSAGE_PRIVACY_SITE , 'text' => get_string ( 'contactableprivacy_site' , 'message' ) , 'checked' => ( $ privacysetting == \ core_message \ api :: MESSAGE_PRIVACY_SITE ) ] ; } $ context [ 'privacychoices' ] = $ choices ; return $ this -> render_from_template ( 'message/message_preferences' , $ context ) ; }
docstring: Display the interface for message preferences
  
  @param object $user instance of a user
  @return string The text to render
docstring_tokens: Display the interface for message preferences