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
大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...
随机推荐
- Java EE之Hibernate异常总结【5】java.lang.StackOverflowError[栈溢出]
Exception in thread "main" java.lang.StackOverflowError at java.lang.reflect.InvocationTar ...
- luogu P3960 列队
传送门 因为\(Splay\)可以\(O(logn)\)维护区间,所以直接对每一行维护第一个元素到倒数第二个元素的\(Splay\),最后一列维护一个\(Splay\),每次把选出来的点删掉,然后把那 ...
- 【BARTS计划】【Share_Week1】社交产品思考
Share:每周分享篇有观点和思考的技术文章 社交梦是每个互联网大厂都在做的,好像大家都默认了一种说法:没有社交功能的产品是不完整的,不做社交产品的公司是缺少战略眼光的.但就目前来看,微信的社交霸 ...
- Subarray Sum & Maximum Size Subarray Sum Equals K && Subarray Sum Equals K
Subarray Sum Given an integer array, find a subarray where the sum of numbers is zero. Your code sho ...
- oracle 监听 添加ip
同时修改tnsnames.ora.listener.ora将这两个文件中HOST后面的主机都修改为127.0.0.1然后重启OracleServiceXE.OracleXETNSListener服务 ...
- saltStack的event接口通过mysql数据库接收SaltStack批量管理日志
event是一个本地的ZeroMQ PUB Interface,event是一个开放的系统,用于发送信息通知salt或其他的操作系统.每个event都有一个标签.事件标签允许快速制定过滤事件.除了标签 ...
- myeclipse的web项目导入到eclipse中
环境组成: java8 eclipse4.4.2 for javaee tomcat 7.0.61 1.导入myeclipse项目 2.设置JDK环境 3.将导入的项目修改为web项目 将myecli ...
- 百度地图的Icon
在百度地图的类说明中,查看对Icon的构建: 定制IconOptions 看下面的差别 发现在IconOptions没有imageSize属性 而在实际测试中,代码如下 <script type ...
- MariaDB:在Linux下修改编码
参考网址:http://www.cnblogs.com/vingi/articles/4302330.html: # vi /etc/my.cnf [mysqld] init_connect='SET ...
- 谁说前端不需要懂-Nginx反向代理与负载均衡
转:https://juejin.im/post/5b01336af265da0b8a67e5c9 学到老活到老 前端圈一直很新,一直要不停的学习,而且在进入大厂的路上,还要求熟悉一门后台语言等等.用 ...