我试图恢复用户的课程状态'即不完整的','完成'使用此值,我将根据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));
}
到目前为止,这是我设法提出的,但它仍然是不正确的,我似乎无法到达任何地方。我相信这可能是我的隐藏/表演。任何人都可以指出正确的方向吗?
答案 0 :(得分:0)
如果这是你的功能的完整代码,那么你会遗漏一些东西。
首先,您需要在数据库上执行查询,因为如果条件是将字符串与sql查询与不同的字符串“completed”进行比较,那么您现在正在执行的操作。
假设你修复它。我会这样做:
您可以通过多种方式执行此操作,但无需额外的逻辑编写 $ completedCheck ==“completed”将无效。
答案 1 :(得分:0)
Moodle具有使活动相互依赖的基本功能。
该功能被称为"限制访问"。
您需要的功能是参考活动完成的限制访问。也许,参考成绩的限制访问也会有效。
https://docs.moodle.org/33/en/Restrict_access_settings
也许你不需要自己开发?
Greetins