-
Notifications
You must be signed in to change notification settings - Fork 395
feat: Add Deep Linking Support to LTI in ILIAS 10, Fix Learning Progress Transmission, and Improve LTI Integration #10516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
sergiosant02
wants to merge
29
commits into
ILIAS-eLearning:release_10
Choose a base branch
from
surlabs:ilias10_LTI_deeplinking
base: release_10
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
feat: Add Deep Linking Support to LTI in ILIAS 10, Fix Learning Progress Transmission, and Improve LTI Integration #10516
sergiosant02
wants to merge
29
commits into
ILIAS-eLearning:release_10
from
surlabs:ilias10_LTI_deeplinking
+702
−53
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…nking consumer Previously, LTI1.3 learning progress was sent using OAuth encoding, which is specific to LTI1.1. This caused some errors and made it impossible to use deep linking. In addition, the necessary configuration has been added to obtain the jwks required for deep linking.
Now, we are able to connect ILIAS with other LMSs using LTI with Deep linking, this allows to users to select the resource which they want to consume.
We update and assign new language variables with the aim of informing the user how to configure LTI.
Extended the LTI 1.3 consumer integration in ILIAS to support Deep Linking using a modal-based workflow. Implemented Deep Linking launch flow when ILIAS acts as the consumer platform. Added modal-based UI using ilCustomInputGUI to trigger Deep Linking from within the provider settings form without leaving the page. Embedded the Deep Linking initiation endpoint in an iframe inside an ILIAS modal. Added parent–iframe communication (onLtiDeepLinkDone) to close the modal automatically after the content selection is completed in the external tool. Implemented manual close handling for the modal “X” button when rendered outside ILIAS’ standard modal initialization flow. Improved user experience by keeping the workflow contained within ILIAS instead of redirecting to external pages. This commit is part of enabling full LTI 1.3 Deep Linking support in ILIAS as an LTI consumer.
This changes allows to consumers to create different resources from the same consumer instance.
- The new forms are used to carry out deep linking, thereby improving the aesthetics and quality of the code. - - Due to the incompatibility between the ILIAS client_id parameter and the LTI parameter, a strategy is developed to resolve this issue and also protect installations with existing configurations.
We added a language variable to improve the user experience during deep linking configuration.
- Deleted some unnecessary - Include returnUrl
Fixes a redirect loop, that occurs when falling back to refId 1 when discerning the correct contextID for LTI content.
fix redirect loop
# Conflicts: # components/ILIAS/LTIConsumer/classes/class.ilLTIConsumeProviderFormGUI.php # components/ILIAS/LTIConsumer/classes/class.ilLTIConsumeProviderSettingsGUI.php # components/ILIAS/LTIConsumer/classes/class.ilObjLTIConsumer.php # components/ILIAS/LTIConsumer/resources/ltiauth.php # components/ILIAS/LTIProvider/classes/InternalProvider/class.ilAuthProviderLTI.php # components/ILIAS/LTIProvider/classes/InternalProvider/class.ilLTIProviderObjectSettingGUI.php
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces full Deep Linking (LTI) support to ILIAS Release 10, extending functionality that was previously missing or incomplete in the LTI implementation.
In addition, it includes a fix for learning progress transmission, ensuring correct communication between ILIAS and external LTI tools.
Further improvements include several minor refinements to enhance overall stability and clarity of the LTI integration, along with the addition of new language variables for better usability.