Skip to content

Conversation

@sergiosant02
Copy link
Contributor

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.

…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
@ZallaxDev ZallaxDev self-assigned this Nov 25, 2025
@ZallaxDev ZallaxDev added bugfix improvement php Pull requests that update Php code labels Nov 25, 2025
# 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

Labels

bugfix improvement php Pull requests that update Php code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants