Can a desire2learn remote plugin be used to insert a custom external learning tool link into a course module?

不羁的心 提交于 2019-12-23 04:56:05

问题


We'd like to use a Desire2Learn remote plugin to configure a custom LTI external learning tool link via the course builder, but it's not clear to me if and how the remote plugin API is supposed to be used to achieve this.

This is what we'd like to do:

When the user adds an instance of our remote plugin to a module using the Course Builder, our plugin will display a UI to configure a specific instance of our LTI tool. When the instructor has finished configuring the instance through our plugin UI, we'd like an External Learning Tool link to be created at the location in the module where the plugin was dropped. Then when the student clicks on the module link they will see the external learning tool rather than the plugin UI.

It's possible we might be able to use the Valence API to create the link when our Plugin UI is executed in a similar way to how the Book Widget example (http://devs.valence.desire2learn.com/2013/02/15/remote-plugins-the-bookwidget-sample-2) adds books to the course. However, I'm not sure how we would know exactly where to create the link or if it is even possible to create LTI external tool links using the Valence API.

Also, when you use a plugin in the course builder you can drag the plugin to a specific location in the module e.g. between 2 existing items. I don't see anything in the LTI launch parameters when the plugin is executed that tells us where that is apart from this parameter:

custom_links_import_service_url:_https://mydomain.desire2learndemo.com/d2l/lms/remoteplugins/coursebuilder/ImportService.d2l?parentNode=541&pluginId=85834c62-3fc6-455d-b89a-e99bbf70f1ce

That URL has the node of the module (parentNode=541) but doesn't tell us where in the module the plugin was placed.

The launch also includes a return URL parameter but returning to that just seems to refresh the page, and not even the original plugin launch url is added to the module. I see the text "Insert action was cancelled." at the top of the popup and the course builder refreshes.

launch_presentation_return_url:_https://mydomain.desire2learndemo.com/d2l/lms/remoteplugins/courseBuilder/return.d2l?ou=6671&parentNode=541&pluginId=85834c62-3fc6-455d-b89a-e99bbf70f1ce

Hope this description of what we'd like to do makes sense, and thanks for any insights on how we can do this.


回答1:


There are several aspects to this question.

Creating LTI links through the API. We currently don't support creation of LTI links through the Learning Framework APIs, but that is on the roadmap for our upcoming 10.2 release due for Spring 2013. The upcoming APIs will let callers register new LTI Link objects, and also fashion a Quicklink around a registered LTI Link (which then contains a URL that can be used to launch the LTI Link).

Positioning content topics within course content modules. Currently our API only supports the creation, modification, or removal of topics from within a module; we don't provide an API to precisely position a topic within a module's list of contained topics. New items placed within a module always get placed at the bottom of the list of things that module contains. The parentNode value you get passed is indeed the ID of the parent content module, and when you use an API to add a topic, you'd add it to that module.

Page return. The current behaviour of the D2L LE Tool Consumer is that when the Tool Provider redirects to the launch_presentation_return_url, the LMS refreshes the page (thus, any links you inserted before redirecting to the return URL appear in the refreshed page). If you need to direct the user's attention to anything about the status of the LTI launch, then your UX needs to handle that messaging to the user before redirecting back to the return URL.

On deployed versions of the LMS up to March 2013, on page return LTI Tool Providers need to send the ?lt_msg= query string parameter along with the return URL, although it's OK for this parameter to have an empty value. After the service packs provided in March 2013, Tool providers no longer need to send back that query parameter to the return URL: any request of the return URL will require a page refresh whether or not it includes the query parameter.



来源:https://stackoverflow.com/questions/15284305/can-a-desire2learn-remote-plugin-be-used-to-insert-a-custom-external-learning-to

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!