我想从Moodle获取一个Group / Grouping ID来定制课程的UI。我需要向特定的组/分组显示资源。我已经设置了Moodle。我已登录,因为不同的用户只能访问分配给该用户组的资源。
我的主题有一个自定义侧边栏菜单,其中包含指向该课程用户的页面,作业和所有其他资源的链接。我需要使用PHP if / else语句向菜单中的用户显示正确的Resources,具体取决于Group / Grouping ID的值。我在Moodle.com上找到了一些文档。我想出了这个破坏我主题的代码。
<?php
// Get the course module id from a post or get request.
$id = required_param('id', PARAM_INT);
// Get the course module.
$cm = get_coursemodule_from_id('forum', $id, 0, false, MUST_EXIST)
// Get the current group id.
$currentgroupingid = groups_get_activity_grouping($cm);
switch($currentgroupingid) {
case "1":
echo "Group 1";
break;
case "2":
echo "Group 2";
break;
case "3":
echo "Group 3";
break;
default:
break;
}?>
此代码不起作用,我不知道为什么。在文档中有关于如何访问有关组和分组的信息的示例。 Moodle Group API
答案 0 :(得分:0)
在我的Moodle课程中,有三个不同的小组。我需要能够根据用户的组注册密钥动态更改网页资源上链接的href。这就是我所做的:
<div class="enrolment-key" style="display:none;">
<?php
// Grab current User's group from Database By ID
$sqlGROUPMEMBERS = "SELECT * FROM mdl_groups_members WHERE userid='$USER->id'";
// Put Query in new Varible
$resultGROUPMEMBERS = mysql_query($sqlGROUPMEMBERS);
// While $row = group id of user
while($row = mysql_fetch_array($resultGROUPMEMBERS)){
$groupID = $row["groupid"];
}
// Grab Enrolment Key by the Group ID
$sqlGROUP = "SELECT * FROM mdl_groups WHERE id=$groupID";
// Put Query in new Varible
$resultENROLMENTKEY = mysql_query($sqlGROUP);
// While $row = group enrolment key for that user
while($row = mysql_fetch_array($resultENROLMENTKEY)){
echo $row["enrolmentkey"];
}
?>
</div>
<script>
$(document).ready(function(){
var baseURL = "https://www.surveymonkey.com/s/";
var endURL = $('.enrolment-key').html();
$(".survey-link").attr("href", baseURL + endURL);
});
</script>
<a class="survey-link">Link</a>
可能有一种更好的方法可以做到这一点,但对于像我这样的Noob来说这很好。