gpt4 book ai didi

php - 如何根据 scorm 完成的结果隐藏/显示 moodle 中的事件

转载 作者:行者123 更新时间:2023-11-30 21:52:01 26 4
gpt4 key购买 nike

我正在尝试恢复用户的 scorm“类(class)状态”,即“未完成”、“完成”等。使用此值,我将根据 SCORM 文件是否已标记为完成来隐藏或显示证书事件还是不是。

function block_iomad_progress_monitorable_modules() {
global $DB;
$completedCheck = "SELECT id
FROM {scorm_scoes_track}
WHERE scormid = :eventid
AND userid = :userid
AND element = 'cmi.core.lesson_status'
AND {$DB->sql_compare_text('value')} = 'completed'"



if ($completedCheck == "completed") {
$link = html_writer::tag('a', $iomadcertificate->name, array('class' => 'dimmed',
'href' => $CFG->wwwroot . '/mod/iomadcertificate/view.php?id=' . $iomadcertificate->coursemodule));;
} else {
$link = html_writer::tag('a', $iomadcertificate->name, array('class' => 'dimmed',
'href' => $CFG->wwwroot . '/mod/iomadcertificate/view.php?id=' . $iomadcertificate->coursemodule));
}

这是我到目前为止想出的办法,但它仍然不正确,而且我似乎没有取得任何进展。我相信这可能是我的隐藏/展示。谁能指出正确的方向?

最佳答案

如果这是您的函数的完整代码,那么您将遗漏一些东西。

首先,您需要在数据库上执行查询,因为您现在在 if 条件下所做的是将字符串与 sql 查询与不同的字符串“完成”进行比较。

假设你修复了它。我会这样处理:

  • 更改您的查询以利用计数。 (或使用 Moodle 功能$DB->count_records_sql Moodle Docs Reference
  • 然后在 if 条件下检查它是否大于零。

您可以通过多种方式做到这一点,但无需编写额外的逻辑$completedCheck == "completed" 将不起作用。

关于php - 如何根据 scorm 完成的结果隐藏/显示 moodle 中的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46807962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com