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
大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...
随机推荐
- Nginx 虚拟主机示例
Nginx server 模块 server { // 标识虚拟主机开始 listen ; ## // 指定虚拟主机服务器端口 server_name localhost; // 指定 IP地址或者域 ...
- Python中crypto模块进行AES加密和解密
#coding: utf8 import sys from Crypto.Cipher import AES from binascii import b2a_hex, a2b_hex class p ...
- C语言文件操作详解
C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现.文件操作标准库函数有: 文件的打开操作 fopen 打开一个文件 文件的关闭操作 fclose 关闭一个文件 ...
- jquery 学习(二) - 属性操作
html代码 <div class="n1" zdy="z1">AAA <p>1111111</p> <input t ...
- SpringBoot2.x整合Redis实战 4节课
1.分布式缓存Redis介绍 简介:讲解为什么要用缓存和介绍什么是Redis,新手练习工具 1.redis官网 https://redis.io/download 2.新手 ...
- 发送http请求的方法
在http/1.1 协议中,定义了8种发送http请求的方法 get post options head put delete trace connect patch. 根据http协议的设计初衷,不 ...
- systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。
1.centos 检查服务是否开机自启 (ntpd是原生的服务,mysql是注册的服务) 参考:1.http://man.linuxde.net/systemctl
- MoveIt! 源安装
rosdep update sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install python-wstool pytho ...
- css 背景图片自适应元素大小
一.一种比较土的方法,<img>置于底层. 方法如下: CSS代码: HTML: <img src="背景图片路径" /> <span>字在背景 ...
- JavaScript内置对象——Math对象
这几天在刷leetcode的时候用到了一些Math对象的知识,故作一下总结~ JavaScript中的Math对象也是一个常见的内置对象,然而与String等其它常见对象不同,Math对象没有构造函数 ...