original_string: public static function instance_config_form($mform) {
          if (!has_capability('moodle/site:config', context_system::instance())) {
              $mform->addElement('static', null, '',  get_string('nopermissions', 'error', get_string('configplugin',
                  'repository_nextcloud')));
              return false;
          }
  
          // Load configured issuers.
          $issuers = core\oauth2\api::get_all_issuers();
          $types = array();
  
          // Validates which issuers implement the right endpoints. WebDav is necessary for Nextcloud.
          $validissuers = [];
          foreach ($issuers as $issuer) {
              $types[$issuer->get('id')] = $issuer->get('name');
              if (\repository_nextcloud\issuer_management::is_valid_issuer($issuer)) {
                  $validissuers[] = $issuer->get('name');
              }
          }
  
          // Render the form.
          $url = new \moodle_url('/admin/tool/oauth2/issuers.php');
          $mform->addElement('static', null, '', get_string('oauth2serviceslink', 'repository_nextcloud', $url->out()));
  
          $mform->addElement('select', 'issuerid', get_string('chooseissuer', 'repository_nextcloud'), $types);
          $mform->addRule('issuerid', get_string('required'), 'required', null, 'issuer');
          $mform->addHelpButton('issuerid', 'chooseissuer', 'repository_nextcloud');
          $mform->setType('issuerid', PARAM_INT);
  
          // All issuers that are valid are displayed seperately (if any).
          if (count($validissuers) === 0) {
              $mform->addElement('static', null, '', get_string('no_right_issuers', 'repository_nextcloud'));
          } else {
              $mform->addElement('static', null, '', get_string('right_issuers', 'repository_nextcloud',
                  implode(', ', $validissuers)));
          }
  
          $mform->addElement('text', 'controlledlinkfoldername', get_string('foldername', 'repository_nextcloud'));
          $mform->addHelpButton('controlledlinkfoldername', 'foldername', 'repository_nextcloud');
          $mform->setType('controlledlinkfoldername', PARAM_TEXT);
          $mform->setDefault('controlledlinkfoldername', 'Moodlefiles');
  
          $mform->addElement('static', null, '', get_string('fileoptions', 'repository_nextcloud'));
          $choices = [
              'both' => get_string('both', 'repository_nextcloud'),
              'internal' => get_string('internal', 'repository_nextcloud'),
              'external' => get_string('external', 'repository_nextcloud'),
          ];
          $mform->addElement('select', 'supportedreturntypes', get_string('supportedreturntypes', 'repository_nextcloud'), $choices);
  
          $choices = [
              FILE_INTERNAL => get_string('internal', 'repository_nextcloud'),
              FILE_CONTROLLED_LINK => get_string('external', 'repository_nextcloud'),
          ];
          $mform->addElement('select', 'defaultreturntype', get_string('defaultreturntype', 'repository_nextcloud'), $choices);
      }
code: public static function instance_config_form($mform) {
          if (!has_capability('moodle/site:config', context_system::instance())) {
              $mform->addElement('static', null, '',  get_string('nopermissions', 'error', get_string('configplugin',
                  'repository_nextcloud')));
              return false;
          }
  
          // Load configured issuers.
          $issuers = core\oauth2\api::get_all_issuers();
          $types = array();
  
          // Validates which issuers implement the right endpoints. WebDav is necessary for Nextcloud.
          $validissuers = [];
          foreach ($issuers as $issuer) {
              $types[$issuer->get('id')] = $issuer->get('name');
              if (\repository_nextcloud\issuer_management::is_valid_issuer($issuer)) {
                  $validissuers[] = $issuer->get('name');
              }
          }
  
          // Render the form.
          $url = new \moodle_url('/admin/tool/oauth2/issuers.php');
          $mform->addElement('static', null, '', get_string('oauth2serviceslink', 'repository_nextcloud', $url->out()));
  
          $mform->addElement('select', 'issuerid', get_string('chooseissuer', 'repository_nextcloud'), $types);
          $mform->addRule('issuerid', get_string('required'), 'required', null, 'issuer');
          $mform->addHelpButton('issuerid', 'chooseissuer', 'repository_nextcloud');
          $mform->setType('issuerid', PARAM_INT);
  
          // All issuers that are valid are displayed seperately (if any).
          if (count($validissuers) === 0) {
              $mform->addElement('static', null, '', get_string('no_right_issuers', 'repository_nextcloud'));
          } else {
              $mform->addElement('static', null, '', get_string('right_issuers', 'repository_nextcloud',
                  implode(', ', $validissuers)));
          }
  
          $mform->addElement('text', 'controlledlinkfoldername', get_string('foldername', 'repository_nextcloud'));
          $mform->addHelpButton('controlledlinkfoldername', 'foldername', 'repository_nextcloud');
          $mform->setType('controlledlinkfoldername', PARAM_TEXT);
          $mform->setDefault('controlledlinkfoldername', 'Moodlefiles');
  
          $mform->addElement('static', null, '', get_string('fileoptions', 'repository_nextcloud'));
          $choices = [
              'both' => get_string('both', 'repository_nextcloud'),
              'internal' => get_string('internal', 'repository_nextcloud'),
              'external' => get_string('external', 'repository_nextcloud'),
          ];
          $mform->addElement('select', 'supportedreturntypes', get_string('supportedreturntypes', 'repository_nextcloud'), $choices);
  
          $choices = [
              FILE_INTERNAL => get_string('internal', 'repository_nextcloud'),
              FILE_CONTROLLED_LINK => get_string('external', 'repository_nextcloud'),
          ];
          $mform->addElement('select', 'defaultreturntype', get_string('defaultreturntype', 'repository_nextcloud'), $choices);
      }
code_tokens: public static function instance_config_form ( $ mform ) { if ( ! has_capability ( 'moodle/site:config' , context_system :: instance ( ) ) ) { $ mform -> addElement ( 'static' , null , '' , get_string ( 'nopermissions' , 'error' , get_string ( 'configplugin' , 'repository_nextcloud' ) ) ) ; return false ; } // Load configured issuers. $ issuers = core \ oauth2 \ api :: get_all_issuers ( ) ; $ types = array ( ) ; // Validates which issuers implement the right endpoints. WebDav is necessary for Nextcloud. $ validissuers = [ ] ; foreach ( $ issuers as $ issuer ) { $ types [ $ issuer -> get ( 'id' ) ] = $ issuer -> get ( 'name' ) ; if ( \ repository_nextcloud \ issuer_management :: is_valid_issuer ( $ issuer ) ) { $ validissuers [ ] = $ issuer -> get ( 'name' ) ; } } // Render the form. $ url = new \ moodle_url ( '/admin/tool/oauth2/issuers.php' ) ; $ mform -> addElement ( 'static' , null , '' , get_string ( 'oauth2serviceslink' , 'repository_nextcloud' , $ url -> out ( ) ) ) ; $ mform -> addElement ( 'select' , 'issuerid' , get_string ( 'chooseissuer' , 'repository_nextcloud' ) , $ types ) ; $ mform -> addRule ( 'issuerid' , get_string ( 'required' ) , 'required' , null , 'issuer' ) ; $ mform -> addHelpButton ( 'issuerid' , 'chooseissuer' , 'repository_nextcloud' ) ; $ mform -> setType ( 'issuerid' , PARAM_INT ) ; // All issuers that are valid are displayed seperately (if any). if ( count ( $ validissuers ) === 0 ) { $ mform -> addElement ( 'static' , null , '' , get_string ( 'no_right_issuers' , 'repository_nextcloud' ) ) ; } else { $ mform -> addElement ( 'static' , null , '' , get_string ( 'right_issuers' , 'repository_nextcloud' , implode ( ', ' , $ validissuers ) ) ) ; } $ mform -> addElement ( 'text' , 'controlledlinkfoldername' , get_string ( 'foldername' , 'repository_nextcloud' ) ) ; $ mform -> addHelpButton ( 'controlledlinkfoldername' , 'foldername' , 'repository_nextcloud' ) ; $ mform -> setType ( 'controlledlinkfoldername' , PARAM_TEXT ) ; $ mform -> setDefault ( 'controlledlinkfoldername' , 'Moodlefiles' ) ; $ mform -> addElement ( 'static' , null , '' , get_string ( 'fileoptions' , 'repository_nextcloud' ) ) ; $ choices = [ 'both' => get_string ( 'both' , 'repository_nextcloud' ) , 'internal' => get_string ( 'internal' , 'repository_nextcloud' ) , 'external' => get_string ( 'external' , 'repository_nextcloud' ) , ] ; $ mform -> addElement ( 'select' , 'supportedreturntypes' , get_string ( 'supportedreturntypes' , 'repository_nextcloud' ) , $ choices ) ; $ choices = [ FILE_INTERNAL => get_string ( 'internal' , 'repository_nextcloud' ) , FILE_CONTROLLED_LINK => get_string ( 'external' , 'repository_nextcloud' ) , ] ; $ mform -> addElement ( 'select' , 'defaultreturntype' , get_string ( 'defaultreturntype' , 'repository_nextcloud' ) , $ choices ) ; }
docstring: This method adds a select form and additional information to the settings form..
  
  @param \moodleform $mform Moodle form (passed by reference)
  @return bool|void
  @throws coding_exception
  @throws dml_exception
docstring_tokens: This method adds a select form and additional information to the settings form ..