如何在Desire2Learn中使用JavaScript找出OrgUnitCode?

时间:2013-04-25 17:44:15

标签: desire2learn valence

我们正在从ANGEL转换为D2L。我们已经创建了基于JavaScript的小部件,它们使用$ SECTION_ID $标记来告诉脚本它从哪个课程运行。在Desire2Learn中,等效的是替换字符串{OrgUnitCode}。我们只想使用替换字符串,但它们在课程页面中无法正常工作(我的大多数小部件用途都是这样)。有没有其他方法可以找出运行JavaScript小部件的课程?

以下是我们的一个小部件的代码示例,用户将在其课程中将其粘贴到页面中:

<script type="text/javascript" data-id="NotablePAD540" section="{OrgUnitCode}">
     var DAT = DAT || {}; if (!DAT.n) { (function (d) {
     var f = d.getElementsByTagName('SCRIPT')[0], s = d.createElement('SCRIPT'); s.async = true;
     s.type = 'text/javascript'; s.charset = 'utf-8'; s.src = '//dev.notable.vudat.msu.edu/n.js'; 
     f.parentNode.insertBefore(s, f); }(document)); }; DAT.n = 1; </script>

每个记事本都有一个唯一的ID,此代码段示例适用于ID为540的记事本。动态位{OrgUnitCode}是分离数据的内容,允许我在多个课程中使用相同的代码段和将数据分开存储。

1 个答案:

答案 0 :(得分:2)

如果案例纯粹是在包含动态信息的课程主页上有一个小部件,那么最有效的解决方案可能是使用“远程插件小部件”。

这些可由管理员使用“Manage Remote Plugins”工具进行设置。

他们的远程插件有效地将LTI启动组合到iframe中,并在配置主页(或系统的其他区域)时将它们作为小部件提供。有examples posted如何将其用于更丰富的服务器端应用程序。

LTI发布本身传递有关其发起地点的信息(即上下文相关信息)。

在您的情况下,看起来只是托管包含javascript的静态页面会起作用。然后你可以使用javascript来检查查询字符串。 (如果你在那时关心信任,那么安全地测试来自javascript的LTI签名有点棘手......)

此外,Valence APIs (the GET calls) can be used from the javascript如果您需要补充other information that is available