2016-09-22 95 views
0

我在moodle中編寫了一個插件,它應該爲某些用戶分配「coursecreator」角色。如何爲moodle中的用戶分配「coursecreator」角色?

$coursecreatorroleid = $DB->get_field('role', 'id', array('shortname' => 'coursecreator')); 

role_assign($coursecreatorroleid, $user->id,context_course::instance()); 

if (user_has_role_assignment($user->id, $coursecreatorroleid)) 
    echo "True"; 

但它沒有工作。有人可以幫我嗎? 謝謝。

回答

1

如果不提供課程ID,則無法創建課程上下文實例。

所以,你應該寫:

$context = context_course::instance($courseid); 
role_assign($coursecreatorroleid, $user->id, $context); 

或者,如果你想要分配在站點級別的角色,或者在一類水平(這使得該課程的創造者的角色意義上的),你應該使用context_system :: instance()或context_coursecat :: instance($ catid)。

如果還建議您打開調試(如果尚未打開) - http://docs.moodle.org/en/Debugging - 因爲這會給您有用的錯誤消息和警告。

+0

'context_system :: instance()'是我的答案。 Tnx很多。 –

相關問題