Enrolment API
由于Moodle 2.0有一个用户注册的新概念,它们完全独立于角色和功能。能力通常与注册状态结合使用。
什么是注册?
登记的用户可以完全参加一门课程。活跃用户注册允许用户输入课程。只有注册的用户可能是小组成员。成绩仅存储在注册用户的名下。
Unenrolment
清除选课(注册)是不可逆转的操作,清除用户的参与信息。只有在您不需要保留包括用户成绩在内的所有课程参与信息的情况下,完全取消注册才是合适的。
注册状态
而不是完全不注册,通常只是暂停用户注册。如果还有其他途径进入课程(如访客访问),建议同时删除用户角色。
活动参与
活动开发者决定模块的注册相关行为。
有一些一般的指导方针:
- 只有拥有有效注册的用户才能收到通知。
- 活动应显示注册用户作为参与者的一些功能。
- 默认情况下,只有具有活动注册的用户才能显示在报告中。
- 应该有显示所有注册用户的选项,包括暂停注册。
- 出于性能原因,不可见的参与数据应该在未注册的情况下被清除
- 其他参与者可见的贡献应在取消注册之后保存(如论坛帖子)。
API函数
enrol_send_welcome_email_options()
有些注册方法支持向用户发送欢迎邮件。此方法返回用户注册课程时发送欢迎电子邮件的所有可能选项的列表,并且每个选项都具有在enrollib.php上定义的相应常量:
define ('ENROL_DO_NOT_SEND_EMAIL' , 0 ); //不要发送欢迎邮件
define ('ENROL_SEND_EMAIL_FROM_COURSE_CONTACT' , 1 ); //从课程联系人发送欢迎电子邮件。
define ('ENROL_SEND_EMAIL_FROM_KEY_HOLDER' , 2 ); //从课程密钥持有者发送欢迎电子邮件。
define ('ENROL_SEND_EMAIL_FROM_NOREPLY' , 3 ); //从没有回复发送欢迎电子邮件。
主要想法是使发送电子邮件选项在支持此功能的注册方法中保持一致。看下面的例子:
$sendoptions = enrol_send_welcome_email_options();
print_object($sendoptions);
上面的例子会输出:
Array
(
[1] => 'No'
[2] => 'From the course contact'
[3] => 'From the key holder'
[4] => 'From the no-reply address'
)
is_enrolled()
用户是否参加课程?对于学生和教师,返回true,对于管理员和其他管理者是false。用户注册可以是活动的,也可以是暂停的,被暂停的用户不能进入课程(除非允许某种访客访问)或具有moodle / course:view功能,通常隐藏在UI中。
函数 is_enrolled ( context $ context , $ user = null , $ withcapability = '' , $ onlyactive = false )
很好的例子是选择模块,每个参与者有一个插槽,没有注册的人不被允许投票
is_enrolled($ context,$ USER,'mod / choice:选择')
。另一个例子是用户需要注册并有能力提交分配的分配
is_enrolled($ this-> context,$ USER,'mod / assignment:submit')
。
get_enrolled_users()
有时你需要知道可以参与某些活动的用户列表。
功能 get_enrolled_sql (上下文$上下文, $ withcapability = '' , $ GROUPID = 0 , $ onlyactive = 假)
函数 get_enrolled_users (上下文$上下文, $ withcapability = '' , $ GROUPID = 0 , $ userfields = 'U。*' , $ orderby = '' , $ limitfrom = 0 , $ limitnum = 0 )
函数 count_enrolled_users ( context $ context , $ withcapability = '' , $ groupid = 0 )
比如你想知道谁现在可以登顶任务:
$ submissioncandidates = get_enrolled_users ($ modcontext , 'mod / assignment:submit' );
分配模块需要为注册的所有用户保存数据,包括具有暂停注册且没有任何角色的用户。当用户完全取消注册时,模块开发人员可以决定清除所有的用户数据。
从get_enrolled_sql()中选择SQL常常用于性能方面的原因 - 您可以在连接中使用它,以仅为注册用户获取特定信息。
Enrolment API的更多相关文章
- Enrolment注册插件
自moodle2.0注册插件必须继承 lib/enrollib.php的 enrol_plugin 抽象类:这个基类包含所有标准方法和开发人员文档 课程注册信息存储在enrol和user_enrol ...
- 干货来袭-整套完整安全的API接口解决方案
在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...
- 12306官方火车票Api接口
2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...
- 几个有趣的WEB设备API(二)
浏览器和设备之间还有很多有趣的接口, 1.屏幕朝向接口 浏览器有两种方法来监听屏幕朝向,看是横屏还是竖屏. (1)使用css媒体查询的方法 /* 竖屏 */ @media screen and (or ...
- html5 canvas常用api总结(三)--图像变换API
canvas的图像变换api,可以帮助我们更加方便的绘画出一些酷炫的效果,也可以用来制作动画.接下来将总结一下canvas的变换方法,文末有一个例子来更加深刻的了解和利用这几个api. 1.画布旋转a ...
- JavaScript 对数据处理的5个API
JavaScript对数据处理包括向上取整.向下取整.四舍五入.固定精度和固定长度5种方式,分别对应ceil,floor,round,toFixed,toPrecision等5个API,本文将对这5个 ...
- ES5对Array增强的9个API
为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...
- javascript的api设计原则
前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...
- 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino
大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...
随机推荐
- CF1066D Boxes Packing
传送门 这题为什么要用二分呢?/huaji 首先可以\(O(n)\)预处理出从某个物品\(i\)开始放,只放一个盒子,能放的最后物品的位置\(j\),只要用两个指针维护左右端点,每次移动一下左端点同时 ...
- HDU 2522 A simple problem (模拟)
题目链接 Problem Description Zty很痴迷数学问题..一天,yifenfei出了个数学题想难倒他,让他回答1 / n.但Zty却回答不了^_^. 请大家编程帮助他. Input 第 ...
- cdn.dns,cms
CDN CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各 ...
- Redis实现聊天功能
在学习了Redis做为消息队列之后研究 了redis聊天的功能. 其实用关系型数据库也可以实现消息功能,自己就曾经用mysql写过一个简单的消息的功能.RDB中思路如下: ** 在实际中可以完全借助m ...
- IAR KEIL ECLIPSE使用JlinkScript文件进行调试
转载自:https://wiki.segger.com/Using_J-Link_Script_Files Using J-Link Script Files Contents [hide] ...
- linux 定期清除日志
clearLog.sh #!/bin/sh find /usr/local/apache/logs -mtime + 30 -name "*.log" -exec rm {} \; ...
- TERMIOS详解【转】
转自:https://blog.csdn.net/guo_wangwei/article/details/1102931# TERMIOS NAME termios, tcgetattr, tcset ...
- 数据库的连接使用——使用ADO.NET连接数据库
一.ADO.NET简介 ADO.NET是由很多类组成的一个类库,这些类库提供了很多对象,用来完成数据的连接.查询.插入.更新和删除等操作.其中主要包括以下对象: 1.Connection对象:用来连接 ...
- __ATTRIBUTE__ 知多少?
GNU C 的一大特色就是__attribute__ 机制.__attribute__ 可以设置函数属性(Function Attribute ).变量属性(Variable Attribute )和 ...
- phpstudy中apache的默认根目录的配置
默认配置文件是:vhosts.conf. 安装laravel后需要把根目录配置到public. 下面的配置需要在本地计算机的host文件配置域名,一个是“localhost”,一个是“www.goho ...