original_string: public function can_self_enrol(stdClass $instance, $checkuserenrolment = true) {
          global $CFG, $DB, $OUTPUT, $USER;
  
          if ($checkuserenrolment) {
              if (isguestuser()) {
                  // Can not enrol guest.
                  return get_string('noguestaccess', 'enrol') . $OUTPUT->continue_button(get_login_url());
              }
              // Check if user is already enroled.
              if ($DB->get_record('user_enrolments', array('userid' => $USER->id, 'enrolid' => $instance->id))) {
                  return get_string('canntenrol', 'enrol_self');
              }
          }
  
          if ($instance->status != ENROL_INSTANCE_ENABLED) {
              return get_string('canntenrol', 'enrol_self');
          }
  
          if ($instance->enrolstartdate != 0 and $instance->enrolstartdate > time()) {
              return get_string('canntenrolearly', 'enrol_self', userdate($instance->enrolstartdate));
          }
  
          if ($instance->enrolenddate != 0 and $instance->enrolenddate < time()) {
              return get_string('canntenrollate', 'enrol_self', userdate($instance->enrolenddate));
          }
  
          if (!$instance->customint6) {
              // New enrols not allowed.
              return get_string('canntenrol', 'enrol_self');
          }
  
          if ($DB->record_exists('user_enrolments', array('userid' => $USER->id, 'enrolid' => $instance->id))) {
              return get_string('canntenrol', 'enrol_self');
          }
  
          if ($instance->customint3 > 0) {
              // Max enrol limit specified.
              $count = $DB->count_records('user_enrolments', array('enrolid' => $instance->id));
              if ($count >= $instance->customint3) {
                  // Bad luck, no more self enrolments here.
                  return get_string('maxenrolledreached', 'enrol_self');
              }
          }
  
          if ($instance->customint5) {
              require_once("$CFG->dirroot/cohort/lib.php");
              if (!cohort_is_member($instance->customint5, $USER->id)) {
                  $cohort = $DB->get_record('cohort', array('id' => $instance->customint5));
                  if (!$cohort) {
                      return null;
                  }
                  $a = format_string($cohort->name, true, array('context' => context::instance_by_id($cohort->contextid)));
                  return markdown_to_html(get_string('cohortnonmemberinfo', 'enrol_self', $a));
              }
          }
  
          return true;
      }
code: public function can_self_enrol(stdClass $instance, $checkuserenrolment = true) {
          global $CFG, $DB, $OUTPUT, $USER;
  
          if ($checkuserenrolment) {
              if (isguestuser()) {
                  // Can not enrol guest.
                  return get_string('noguestaccess', 'enrol') . $OUTPUT->continue_button(get_login_url());
              }
              // Check if user is already enroled.
              if ($DB->get_record('user_enrolments', array('userid' => $USER->id, 'enrolid' => $instance->id))) {
                  return get_string('canntenrol', 'enrol_self');
              }
          }
  
          if ($instance->status != ENROL_INSTANCE_ENABLED) {
              return get_string('canntenrol', 'enrol_self');
          }
  
          if ($instance->enrolstartdate != 0 and $instance->enrolstartdate > time()) {
              return get_string('canntenrolearly', 'enrol_self', userdate($instance->enrolstartdate));
          }
  
          if ($instance->enrolenddate != 0 and $instance->enrolenddate < time()) {
              return get_string('canntenrollate', 'enrol_self', userdate($instance->enrolenddate));
          }
  
          if (!$instance->customint6) {
              // New enrols not allowed.
              return get_string('canntenrol', 'enrol_self');
          }
  
          if ($DB->record_exists('user_enrolments', array('userid' => $USER->id, 'enrolid' => $instance->id))) {
              return get_string('canntenrol', 'enrol_self');
          }
  
          if ($instance->customint3 > 0) {
              // Max enrol limit specified.
              $count = $DB->count_records('user_enrolments', array('enrolid' => $instance->id));
              if ($count >= $instance->customint3) {
                  // Bad luck, no more self enrolments here.
                  return get_string('maxenrolledreached', 'enrol_self');
              }
          }
  
          if ($instance->customint5) {
              require_once("$CFG->dirroot/cohort/lib.php");
              if (!cohort_is_member($instance->customint5, $USER->id)) {
                  $cohort = $DB->get_record('cohort', array('id' => $instance->customint5));
                  if (!$cohort) {
                      return null;
                  }
                  $a = format_string($cohort->name, true, array('context' => context::instance_by_id($cohort->contextid)));
                  return markdown_to_html(get_string('cohortnonmemberinfo', 'enrol_self', $a));
              }
          }
  
          return true;
      }
code_tokens: public function can_self_enrol ( stdClass $ instance , $ checkuserenrolment = true ) { global $ CFG , $ DB , $ OUTPUT , $ USER ; if ( $ checkuserenrolment ) { if ( isguestuser ( ) ) { // Can not enrol guest. return get_string ( 'noguestaccess' , 'enrol' ) . $ OUTPUT -> continue_button ( get_login_url ( ) ) ; } // Check if user is already enroled. if ( $ DB -> get_record ( 'user_enrolments' , array ( 'userid' => $ USER -> id , 'enrolid' => $ instance -> id ) ) ) { return get_string ( 'canntenrol' , 'enrol_self' ) ; } } if ( $ instance -> status != ENROL_INSTANCE_ENABLED ) { return get_string ( 'canntenrol' , 'enrol_self' ) ; } if ( $ instance -> enrolstartdate != 0 and $ instance -> enrolstartdate > time ( ) ) { return get_string ( 'canntenrolearly' , 'enrol_self' , userdate ( $ instance -> enrolstartdate ) ) ; } if ( $ instance -> enrolenddate != 0 and $ instance -> enrolenddate < time ( ) ) { return get_string ( 'canntenrollate' , 'enrol_self' , userdate ( $ instance -> enrolenddate ) ) ; } if ( ! $ instance -> customint6 ) { // New enrols not allowed. return get_string ( 'canntenrol' , 'enrol_self' ) ; } if ( $ DB -> record_exists ( 'user_enrolments' , array ( 'userid' => $ USER -> id , 'enrolid' => $ instance -> id ) ) ) { return get_string ( 'canntenrol' , 'enrol_self' ) ; } if ( $ instance -> customint3 > 0 ) { // Max enrol limit specified. $ count = $ DB -> count_records ( 'user_enrolments' , array ( 'enrolid' => $ instance -> id ) ) ; if ( $ count >= $ instance -> customint3 ) { // Bad luck, no more self enrolments here. return get_string ( 'maxenrolledreached' , 'enrol_self' ) ; } } if ( $ instance -> customint5 ) { require_once ( "$CFG->dirroot/cohort/lib.php" ) ; if ( ! cohort_is_member ( $ instance -> customint5 , $ USER -> id ) ) { $ cohort = $ DB -> get_record ( 'cohort' , array ( 'id' => $ instance -> customint5 ) ) ; if ( ! $ cohort ) { return null ; } $ a = format_string ( $ cohort -> name , true , array ( 'context' => context :: instance_by_id ( $ cohort -> contextid ) ) ) ; return markdown_to_html ( get_string ( 'cohortnonmemberinfo' , 'enrol_self' , $ a ) ) ; } } return true ; }
docstring: Checks if user can self enrol.
  
  @param stdClass $instance enrolment instance
  @param bool $checkuserenrolment if true will check if user enrolment is inactive.
  used by navigation to improve performance.
  @return bool|string true if successful, else error message or false.
docstring_tokens: Checks if user can self enrol .