class LtiToolProviderEvent in LTI Tool Provider 2.x
Same name and namespace in other branches
- 8 src/LtiToolProviderEvent.php \Drupal\lti_tool_provider\LtiToolProviderEvent
Hierarchy
- class \Drupal\lti_tool_provider\LtiToolProviderEvent extends \Symfony\Component\EventDispatcher\Event
Expanded class hierarchy of LtiToolProviderEvent
17 files declare their use of LtiToolProviderEvent
- LTIToolProvider.php in src/
Authentication/ Provider/ LTIToolProvider.php - LtiToolProviderAttributesEvent.php in modules/
lti_tool_provider_attributes/ src/ Event/ LtiToolProviderAttributesEvent.php - LtiToolProviderAttributesEventSubscriber.php in modules/
lti_tool_provider_attributes/ src/ EventSubscriber/ LtiToolProviderAttributesEventSubscriber.php - LtiToolProviderAuthenticatedEvent.php in src/
Event/ LtiToolProviderAuthenticatedEvent.php - LTIToolProviderController.php in src/
Controller/ LTIToolProviderController.php
File
- src/
LtiToolProviderEvent.php, line 11
Namespace
Drupal\lti_tool_providerView source
class LtiToolProviderEvent extends Event {
const EVENT_NAME = 'LTI_TOOL_PROVIDER_EVENT';
/**
* @var bool
*/
private $cancelled = FALSE;
/**
* @var string
*/
private $message;
/**
* Dispatch an LTI Tool Provider event.
*
* @param EventDispatcherInterface $eventDispatcher
* The event dispatcher.
* @param LtiToolProviderEvent $event
* The event to dispatch.
*
* @throws Exception
*/
static function dispatchEvent(EventDispatcherInterface $eventDispatcher, LtiToolProviderEvent &$event) {
$event = $eventDispatcher
->dispatch($event::EVENT_NAME, $event);
if ($event instanceof LtiToolProviderEvent && $event
->isCancelled()) {
throw new Exception($event
->getMessage());
}
}
/**
* @return bool
*/
public function isCancelled() : bool {
return $this->cancelled;
}
/**
* @return string
*/
public function getMessage() : string {
return $this->message;
}
public function cancel(string $message = 'Launch has been cancelled.') : void {
$this->cancelled = TRUE;
$this->message = $message;
$this
->stopPropagation();
}
/**
* Send an error back to the LMS.
*
* @param array $context
* The LTI context.
* @param string $message
* The error message to send.
*/
public function sendLtiError(array $context, string $message) {
if (isset($context['launch_presentation_return_url']) && !empty($context['launch_presentation_return_url'])) {
$url = Url::fromUri($context['launch_presentation_return_url'])
->setOption('query', [
'lti_errormsg' => $message,
])
->setAbsolute(TRUE)
->toString();
$response = new RedirectResponse($url);
$response
->send();
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
LtiToolProviderEvent:: |
private | property | ||
LtiToolProviderEvent:: |
private | property | ||
LtiToolProviderEvent:: |
public | function | ||
LtiToolProviderEvent:: |
static | function | Dispatch an LTI Tool Provider event. | |
LtiToolProviderEvent:: |
constant | 11 | ||
LtiToolProviderEvent:: |
public | function | ||
LtiToolProviderEvent:: |
public | function | ||
LtiToolProviderEvent:: |
public | function | Send an error back to the LMS. |