Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: 3.2.5, 3.3.2
-
Component/s: External Tool (IMS-LTI), Themes
-
Testing Instructions:
-
Affected Branches:MOODLE_32_STABLE, MOODLE_33_STABLE
-
Fixed Branches:MOODLE_33_STABLE, MOODLE_34_STABLE
-
Pull from Repository:
-
Pull Master Branch:
MDL-60219-master -
Pull Master Diff URL:
Description
The LTI activity supports a "Launch container" setting which can be set to several values.
There are two values which promise to embed the LTI provider into Moodle:
- Embed
- Embed, without blocks
As a teacher / admin / student, I would understand "embed" in a way that I still have the Moodle navigation at hand and can use the LTI provider as any other Moodle activity.
With Theme Clean, this expectation is fulfilled. With Theme Boost, we have seen that it is not.
This is because in /mod/lti/view.php, the pagelayout is switched to "frametop" if the "Launch container" is set to "Embed, without blocks".
There are multiple arguments against this pagelayout for LTI in Boost:
- First of all, frametop is marked as legacy (see https://github.com/moodle/moodle/blob/master/theme/boost/config.php#L105)
- In Boost, frametop does not include the Moodle navigation anymore (we don't want to discuss this fact here, this would be another ticket). So, setting the launch container to "Embed, without blocks" in fact produces what I would rather expect if I set the launch container to "Existing window".
- Comparing "Embed, without blocks" and "Existing window" when showing the LTI activity, "Embed, without blocks" has grey whitespace all around the window which seems to be quite counterproductive for LTI as it wastes space for no reason.
- The javascript code to open all links in the top frame (which is defined on https://github.com/moodle/moodle/blob/06e3b6d8bab42b8e56d169d006f31f4a15684830/lib/javascript-static.js#L385 and added to frametop layout on https://github.com/moodle/moodle/blob/590292d48ea32a07c3d165a4d04e40881930abff/lib/outputrequirementslib.php#L370) is counterproductive for LTI applications and, besides that, didn't change the link target at all with the LTI providers which I tested.
Summing up, setting the pagelayout to frametop when "Embed, without blocks" is selected, does not make sense nowadays. Instead, I propose to also set it to the incourse pagelayout for these reasons:
- In Boost, the result is exactly what "Embed, without blocks" promises.
- In Clean, the result is basically the same for incourse as for frametop.