haggag/ h5p-report
PHP中的H5P报告功能
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-09-08 13:24:09 UTC
README
一个用于渲染基于其xAPI语句的内容类型的H5P报告的通用库。
使用方法
- 首先,我们需要从我们将要渲染的内容中获取xAPI数据,这部分内容在内容类型要求中有所说明。
- 然后,我们可以调用
H5PReport->generateReport
方法,传入内容语句和一个可选的父ID。如果内容类型是其他内容的父内容,则提供父ID。这可以通过其子内容确定。 - 返回的是完整的报告的HTML。
生成报告
生成报告需要特殊格式的xAPI数据,一个具有几个属性的物体。以下是一个简单的示例
(object) array( 'interaction_type' => 'choice', 'description' => 'Do you like cake ?', 'correct_responses_pattern' => '[0]', 'response': '2', 'extras': '{"choices":[{"id":0,"description":{"en-US":"Of course, who doesn't ?"}},{"id":1,"description":{"en-US":"No"}},{"id":2,"description":{"en-US":"What is a cake ?"}}},' )
注意,correct_responses_pattern
和extras
应该是JSON编码的。
内容类型要求
插件需要内容类型实现getXAPIData
契约,以便使用statement
对象和可选的children
数组获取适当的报告。
getXAPIData = function () { return { statement: {}, children: [] } }
语句
语句对象是一个标准的xAPI语句,应遵守xAPI规范。您可以在附录A中查看True False问题的示例。
子项
子项数组是内容子项的语句集合。一个包含“摘要”和“标记单词”内容在内的交互式视频将有自己的语句和两个带有自己语句的子项项。子项也可以有自己的子项,因此您可以沿着链一直追踪到最低级别。您可以在附录B中找到一个单选题组的完整示例。
附录A
来自True False问题的xAPI语句示例。
{ "actor":{ "name":"user", "mbox":"mailto:user@mail.com", "objectType":"Agent" }, "verb":{ "id":"http://adlnet.gov/expapi/verbs/answered", "display":{ "en-US":"answered" } }, "object":{ "id":"https://h5p.org/true-false", "objectType":"Activity", "definition":{ "extensions":{ "http://h5p.org/x-api/h5p-local-content-id":34806 }, "name":{ "en-US":"True/False Question" }, "interactionType":"true-false", "type":"http://adlnet.gov/expapi/activities/cmi.interaction", "description":{ "en-US":"Oslo is the capital of Norway.\n" }, "correctResponsesPattern":[ "True" ] } }, "context":{ "contextActivities":{ "category":[ { "id":"http://h5p.org/libraries/H5P.TrueFalse-1.0", "objectType":"Activity" } ] } }, "result":{ "score":{ "min":0, "max":1, "raw":0, "scaled":0 }, "completion":true, "success":false, "duration":"PT4.92S", "response":"" } }
附录B
对单选题组的完整getXAPIData
调用示例。
{ "statement":{ "actor":{ "name":"user", "mbox":"mailto:user@mail.com", "objectType":"Agent" }, "verb":{ "id":"http://adlnet.gov/expapi/verbs/answered", "display":{ "en-US":"answered" } }, "object":{ "id":"https://h5p.org/single-choice-set", "objectType":"Activity", "definition":{ "interactionType":"compound", "type":"http://adlnet.gov/expapi/activities/cmi.interaction", "extensions":{ "http://h5p.org/x-api/h5p-local-content-id":1515 } } }, "result":{ "duration":"PT0S", "score":{ "raw":0, "min":0, "max":3, "scaled":0 } } }, "children":[ { "statement":{ "actor":{ "name":"user", "mbox":"mailto:user@mail.com", "objectType":"Agent" }, "verb":{ "id":"http://adlnet.gov/expapi/verbs/answered", "display":{ "en-US":"answered" } }, "context":{ "contextActivities":{ "parent":[ { "id":"https://h5p.org/single-choice-set", "objectType":"Activity" } ] } }, "object":{ "id":"https://h5p.org/single-choice-set?subContentId=51445ea9-9c98-437a-8981-72d46d6e86c4", "objectType":"Activity", "definition":{ "description":{ "en-US":"Goji berries are also known as ..." }, "interactionType":"choice", "correctResponsesPattern":[ "0" ], "type":"http://adlnet.gov/expapi/activities/cmi.interaction", "choices":[ { "id":"0", "description":{ "en-US":"Wolfberries" } }, { "id":"1", "description":{ "en-US":"Catberries" } }, { "id":"2", "description":{ "en-US":"Bearberries" } } ], "extensions":{ "http://h5p.org/x-api/h5p-local-content-id":1515, "http://h5p.org/x-api/h5p-subContentId":"51445ea9-9c98-437a-8981-72d46d6e86c4" } } }, "result":{ "response":"", "duration":"PT0S", "score":{ "raw":0, "min":0, "max":1, "scaled":0 } } } }, { "statement":{ "actor":{ "name":"user", "mbox":"mailto:user@mail.com", "objectType":"Agent" }, "verb":{ "id":"http://adlnet.gov/expapi/verbs/answered", "display":{ "en-US":"answered" } }, "context":{ "contextActivities":{ "parent":[ { "id":"https://h5p.org/single-choice-set", "objectType":"Activity" } ] } }, "object":{ "id":"https://h5p.org/single-choice-set?subContentId=95b60491-e203-4bc5-956c-89e966b1005d", "objectType":"Activity", "definition":{ "description":{ "en-US":"Goji berries are native to ..." }, "interactionType":"choice", "correctResponsesPattern":[ "0" ], "type":"http://adlnet.gov/expapi/activities/cmi.interaction", "choices":[ { "id":"0", "description":{ "en-US":"Asia" } }, { "id":"1", "description":{ "en-US":"Africa" } }, { "id":"2", "description":{ "en-US":"Europe" } } ], "extensions":{ "http://h5p.org/x-api/h5p-local-content-id":1515, "http://h5p.org/x-api/h5p-subContentId":"95b60491-e203-4bc5-956c-89e966b1005d" } } }, "result":{ "response":"", "duration":"PT0S", "score":{ "raw":0, "min":0, "max":1, "scaled":0 } } } }, { "statement":{ "actor":{ "name":"user", "mbox":"mailto:user@mail.com", "objectType":"Agent" }, "verb":{ "id":"http://adlnet.gov/expapi/verbs/answered", "display":{ "en-US":"answered" } }, "context":{ "contextActivities":{ "parent":[ { "id":"https://h5p.org/single-choice-set", "objectType":"Activity" } ] } }, "object":{ "id":"https://h5p.org/single-choice-set?subContentId=aa694288-df4d-4ed3-8f81-f47fa3d27fe4", "objectType":"Activity", "definition":{ "description":{ "en-US":"Goji berries are usually sold ..." }, "interactionType":"choice", "correctResponsesPattern":[ "0" ], "type":"http://adlnet.gov/expapi/activities/cmi.interaction", "choices":[ { "id":"0", "description":{ "en-US":"Dried" } }, { "id":"1", "description":{ "en-US":"Pickled" } }, { "id":"2", "description":{ "en-US":"Frozen" } } ], "extensions":{ "http://h5p.org/x-api/h5p-local-content-id":1515, "http://h5p.org/x-api/h5p-subContentId":"aa694288-df4d-4ed3-8f81-f47fa3d27fe4" } } }, "result":{ "response":"", "duration":"PT0S", "score":{ "raw":0, "min":0, "max":1, "scaled":0 } } } } ] }
许可证
(MIT许可证)
版权所有 (c) 2016 Joubel AS
以下对本软件及其相关文档文件的副本(以下简称“软件”)的副本(以下简称“软件”)的使用,授予任何获取软件副本的人免费、非排他性、不可转让的使用权,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许软件的受供方为此目的而使用,前提是以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,无论是在软件或其使用或其他交易中产生的。