0

コースのUIをカスタマイズするためにMoodleからグループ/グループ化IDを取得したいのですが。特定のグループ/グループにリソースを表示する必要があります。私はすでにMoodleをセットアップしています。さまざまなユーザーがそのユーザーのグループに割り当てられたリソースにしかアクセスできなかったため、ログインしました。

私のテーマには、そのコースのユーザー向けのページ、課題、その他すべてのリソースへのリンクを含むカスタムサイドバーメニューがあります。グループ/グループ化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 コースには、3 つの異なるグループがあります。ユーザーのグループ登録キーに基づいて、Web ページ リソース上のリンクの 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>

おそらくこれを行うにはもっと良い方法がありますが、私のようなNoobには問題ありません。

于 2012-11-29T19:51:37.100 に答える