Repository navigation
Conversation
Contributor
|
Hi @chfsx, I didn’t realise this could be decoupled like that, much better. Thank you very much, and as far as I’m concerned, it’s fine, it can be merged. 🙌 |
Member
Author
|
I can provide a ReviewApp for the branch if you would like to test it: http://feature-trunk-lti-init-decoupling.ilias-core.review.sr.solutions (contact me via Discord for credetials) |
Saaweel
self-requested a review
October 23, 2026 14:34
Saaweel
approved these changes
Oct 23, 2026
Contributor
|
Tested LTI 1.1 on the review installation: launch as learner and as instructor redirects to the launched course with the LTI view and the right role, and exit works with and without return URL. |
mjansenDatabay
approved these changes
Oct 23, 2026
mjansenDatabay
left a comment
Contributor
There was a problem hiding this comment.
Thx Fabian for the init changes.
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
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.
Follow-up to #12232 (see #12232 (review)): Init no longer knows how the LTI view is set up or how an LTI launch logs in, and the wiring of the view follows the component revision guideline.
Init
ilInitialisationno longer calls$DIC['lti']->init().ilLTIViewLayoutProvideris interested in the main context, which is claimed for every request, and changes only the pages of a user who came from a platform and the LTI pages without a login. It adds the CSS of the view and of the platform and the onload code itself. Theltiscreen context is no longer claimed; nothing else used it.ilStartUpGUI::doLTIAuthentication()is moved to the new base classilLTILoginGUIof the LTI component, whichlti.phpcalls. A login that is not accepted still goes to the login page or the account migration ofilStartUpGUI. The URL oflti.phpand the command it sends are unchanged.$DIC['lti']inAllModernComponentsfor the unmigrated consumers (ilFrameTargetInfo,ilLocatorGUI), andblockedAuthentication()/ilContextLTIProvider, which share their mechanism with SAML, Shibboleth, WebDAV and WAC.Wiring of the LTI view
LTI::legacy()(lazy proxies viaReflectionClass::newLazyProxy()withglobal $DIC) is replaced by narrow interfaces for what the view uses of services that are not in the bootstrap yet (CurrentUser,Navigation,ScreenContext,AuthSessioninLTI/src/View/), each with a legacy proxy without constructor, wired as$internal.$use[\ILIAS\Language\Language::class],$use[\ILIAS\UICore\GlobalTemplate::class]) instead of theUIServicesandilLanguageobjects.ILIAS\LTI\Viewonly offersisActive(), the one method used outside of LTI. The other methods ofilLTIViewGUIare internal;getLaunchTarget()is static, as it only reads the session.LTI.phpuses fully qualified names and the order of theinit()parameters.Testing
[OK] All static artifacts are build!ilLTIViewGUITest), Init and Component pass.@Saaweel could you have a look, as this touches your component? @mjansenDatabay @thibsy for Init.