baseTool = $tool; $this->toolIsV1p3 = $this->baseTool && !empty($this->baseTool->publicKey) && !empty($this->baseTool->getClientId()) && !empty($this->baseTool->getLoginUrl()) && !empty($this->baseTool->getRedirectUrl()); } /** * Build the form. */ public function build() { $plugin = ImsLtiPlugin::create(); $this->addHeader($plugin->get_lang('ToolSettings')); $this->addText('name', get_lang('Name')); $this->addTextarea('description', get_lang('Description')); if (null === $this->baseTool) { $this->addUrl('launch_url', $plugin->get_lang('LaunchUrl'), true); $this->addRadio( 'version', $plugin->get_lang('LtiVersion'), [ ImsLti::V_1P1 => 'LTI 1.0 / 1.1', ImsLti::V_1P3 => 'LTI 1.3.0', ] ); $this->addHtml(''); $this->addHtml('
'); $this->addRadio( 'public_key_type', $plugin->get_lang('PublicKeyType'), [ ImsLti::LTI_JWK_KEYSET => $plugin->get_lang('KeySetUrl'), ImsLti::LTI_RSA_KEY => $plugin->get_lang('RsaKey'), ] ); $this->addHtml('
'); $this->addUrl('jwks_url', $plugin->get_lang('PublicKeyset'), false); $this->addHtml('
'); $this->addHtml(''); $this->addUrl('login_url', $plugin->get_lang('LoginUrl'), false); $this->addUrl('redirect_url', $plugin->get_lang('RedirectUrl'), false); $this->addHtml('
'); } $this->addButtonAdvancedSettings('lti_adv'); $this->addHtml(''); $this->addButtonAdvancedSettings('lti_privacy', get_lang('Privacy')); $this->addHtml(''); $this->addButtonCreate($plugin->get_lang('AddExternalTool')); $this->applyFilter('__ALL__', 'trim'); } public function setDefaultValues() { $defaults = []; $defaults['version'] = ImsLti::V_1P3; $defaults['public_key_type'] = ImsLti::LTI_JWK_KEYSET; if ($this->baseTool) { $defaults['name'] = $this->baseTool->getName(); $defaults['description'] = $this->baseTool->getDescription(); $defaults['custom_params'] = $this->baseTool->getCustomParams(); $defaults['document_target'] = $this->baseTool->getDocumentTarget(); $defaults['share_name'] = $this->baseTool->isSharingName(); $defaults['share_email'] = $this->baseTool->isSharingEmail(); $defaults['share_picture'] = $this->baseTool->isSharingPicture(); $defaults['public_key'] = $this->baseTool->publicKey; $defaults['login_url'] = $this->baseTool->getLoginUrl(); $defaults['redirect_url'] = $this->baseTool->getRedirectUrl(); if ($this->toolIsV1p3) { $advServices = $this->baseTool->getAdvantageServices(); $defaults['1p3_ags'] = $advServices['ags']; $defaults['1p3_nrps'] = $advServices['nrps']; } } $this->setDefaults($defaults); } public function returnForm(): string { $js = ""; return $js.parent::returnForm(); // TODO: Change the autogenerated stub } }