【问题标题】:Persisting data for question type plugin in moodle在moodle中持久化问题类型插件的数据
【发布时间】:2019-03-09 04:07:43
【问题描述】:

我正在为 Moodle 开发一个新的问题类型插件。是多项选择题。我需要根据老师定义的原始问题答案在问题的答案中添加一些特定的数据,并将更新的答案文本显示给参加考试的学生。

假设它是答案文本中定义的区间内的随机数。主要思想是我的问题类型应该为同一问题在不同的测验中生成不同的答案,但是在给定的测验实例中,答案应该是相同的,因此在测验页面之间来回以及在完成问题后查看答案时文字不应有所不同。

所以我想我应该保留当前测验实例的更新答案文本,而不修改数据库。

我尝试以多种方式执行此操作,我尝试将此信息存储在问题尝试步骤实例中,以将其保留在问题实例甚至问题类型实例中。我也尝试在自定义渲染器中做到这一点。但似乎所有这些都在每次刷新或下一个/上一个问题移动时重新初始化。

我认为它应该类似于生成问题的顺序或保留所选答案,但我无法实现。

谁能解释我如何实现这一点,或指向我可以阅读更多关于问题尝试步骤或其他机制如何持久化所需数据的资源。

谢谢,

假面。

【问题讨论】:

    标签: php moodle


    【解决方案1】:

    既然您正在开发自己的 qtype,为什么不创建自己的表来存储这些生成的值并在创建新问题实例时用数据填充它?

    结构可能如下:

    id INT qattemptid INT answerid INT answerdata MIXED(取决于您假设显示的数据类型)

    最好的文档是this one

    【讨论】:

    • 感谢您的回复。我不想将这些数据保留在数据库中,因为它会在其中产生不需要的数据量,并且检索速度也会变慢。我需要它只在当前会话中持续存在。我认为 2 天前我设法做到了这一点。仍然没有应用它背后的整个逻辑,但似乎它正在工作。一旦我确定它可以正常工作,我会解释我的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    相关资源
    最近更新 更多