php 使用SCORM运行时API没有LMS?

xe55xuns  于 2023-04-28  发布在  PHP
关注(0)|答案(3)|浏览(145)

我是新的SCORM,并已被赋予一个任务,以集成SAP Workforce Performance Builder导出SCORM(可以是1.2或2004年)的内容到现有的PHP网站。
简单地说,我需要能够在浏览器中显示导出的SCORM材料(我已经可以做到这一点),并能够通过SCORM运行时API获得统计数据。
我明白,我将需要利用LMS允许通过SCORM运行时API与SCO通信.我已经研究了几个开源LMS的,但还没有找到一个好的解决方案。问题是,很多这些LMS的设计上运行的域的供应商,并内置了工具,以跟进用户的进展和评分。
我正在寻找的是一个简单,轻量级的解决方案,能够与SCORM运行时API进行交互,所以我可以获取用户在课程上花费的时间,他的分数等.我将插入收集到我自己的数据库中的数据,并编码的后端,结果可以评估自己,所有我需要的是一种方法来获得SCORM数据.
我觉得我错过了一些东西,当然你不需要一个完整的LMS实现简单地听基本8 SCORM API调用,并记录结果?任何帮助或推动正确的方向是非常感谢!

gkn4icbw

gkn4icbw1#

如果你只需要模仿LMS,提供一个伪SCORM API,这样课程就可以'说话'到您的PHP网站,尝试克劳德Ostyn的SCORM Test Wrapper.它是纯粹的客户端JavaScript,作为轻量级,你可以得到SCORM.
简而言之,克劳德的测试 Package 器提供了一个简单的SCORM API的课程连接到.它接收来自课程的通信,您可以随意处理。不提供后端代码;如果你想合并一个数据库,你将需要修改 Package 器来从你的网站的数据库中推送/拉取数据(这通常是通过 AJAX 处理的)。
一旦你建立了数据存储,你可以让你的网站作为LMS的行为,使网站能够启动SCORM课程,并使课程发送/接收数据到您的网站通过SCORM API.不需要LMS或第三方服务器。
备注:

  • 不支持解压缩包或阅读清单。(我想你不会有兴趣走那么远。)
  • SCORM还支持排序和导航,这远远超出了简单的JavaScript Package .如果你需要支持的排序和导航功能,你需要从现有的开源项目抓住他们(不容易)或支付第三方像Rustici软件(SCORM云).我怀疑你通过SAP创建的内容不会使用SCORM的排序或导航功能的任何,所以你可能会确定.
  • 克劳德不久前去世了,所以他不能抚养你。喊出来的家伙在Rustici软件,谁保留了SCORM社区的网站.
qojgxg4l

qojgxg4l2#

从课件的Angular 来看,它只是使用javascript调用APIAPI_1484_11对象上的函数。如果您可以编写JavaScript代码来充分模仿接口,并存储/返回必要的数据模型元素,那么您就不需要“整个LMS实现”。
但是,您需要仔细阅读Run-Time Environment文档。
如果你只打算使用它运行SAP劳动力性能生成器制作的课件,那么你可以实现足够的或数据模型,使工作正确(虽然我已经看到这样做,然后人们惊讶/困惑/愤怒时,其他符合SCORM的课件不工作,所以要小心。)
(旁白)您还需要一种可靠的方法来从PIF zip文件安装/更新课件包。同样,为了处理来自特定内容创建者的课件,并且不需要编写完整的通用接口,您可以只选择您需要的imsmanifest.xml文件中的部分。
(题外话)在编写了几次界面的课件方面,我在API的各种LMS实现中看到了有趣的陷阱,包括返回布尔值truefalse,而不是字符串"true""false",这会让你措手不及。到目前为止,可能最喜欢的是截断cmi的LMS。suspend_data在第一个换行符处。(实际上,这个实现是如此的无能,以至于他们的bug中有一个bug,而且它还砍掉了换行符之前的字符。)

5w9g7ksd

5w9g7ksd3#

您主要需要捕获、维护和执行学生尝试对象。我已经以JSON格式使用了一段时间,您可以采用不同的方法来存储由可共享内容对象收集的信息。通常情况下,人们会采摘他们需要的部分。试图去100%进入全面SCORM支持,所以这些类型的问题很受欢迎.
通过创建SCORM运行时任一SCORM 1.2或2004中,您将主要提供这些方法来从学生会话构建数据。这可以看起来像https://gist.github.com/cybercussion/4675334(基于SCORM 2004的单元测试数据)
1.您试图将呼叫路由到服务器端。通常这会导致大量的滞后。我通常不主张把它作为一种选择。
1.您缓存了student尝试,但在提交调用中发布了整个JSON对象。这通常会导致一个更大的数据发布,如果有很多日志交互的话,它会给你带来麻烦。
1.您采用混合方法,只发布更改的数据,并将其合并到服务器上,从而限制可能发生的数据飞艇问题。
我在wiki上也有很多信息https://github.com/cybercussion/SCOBot/wiki以及很多示例代码,提示等。..
我还有更多关于运行时的信息,请访问https://cybercussion.com/products/scobotrte

相关问题