0

我想从 Moodle 获得一个组/分组 ID,用于自定义课程的 UI。我需要向特定的组/分组显示资源。我已经设置好了 Moodle。我已经登录,因为不同的用户只能访问分配给该用户组的资源。

我的主题有一个自定义侧边栏菜单,其中包含指向该课程用户的页面、作业和所有其他资源的链接。我需要根据 Group/Grouping ID 的值使用 PHP if/else 语句在菜单中向用户显示正确的资源。我在 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 组 API

4

1 回答 1

0

在我的 Moodle 课程中,有三个不同的组。我需要能够根据用户组注册密钥动态更改网页资源上链接的 a 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>

可能有更好的方法可以做到这一点,但对于像我这样的菜鸟来说很好。

于 2012-11-29T19:51:37.100 回答