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. | 
