Moodle_函数和模块功能说明书_V2_3_1_-范例与格式-20121127

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关键函数和模组功能说明书
版本历史
目录
1.引言 (1)
2.常用的通用API (2)
2.1.访问权限API (2)
2.2.数据操作API (6)
2.3.文件API (23)
2.4.表单API (28)
2.5.日志API (30)
2.6.导航API (32)
2.7.页面API (34)
2.8.输出API (41)
2.9.字符串API (60)
2.10.升级API (68)
3.关键模组功能 (70)
3.1.Assign (70)
3.2.Assignment (70)
3.3.Book (71)
3.4.Chat (71)
3.5.Choice (72)
3.6.Data (72)
3.7.Feedback (73)
3.8.Folder (73)
3.9.Forum (73)
3.10.Glossary (74)
3.11.Imscp (74)
bel (75)
3.13.Lesson (75)
3.14.Lti (75)
3.15.Page (76)
3.16.Quiz (76)
3.17.Resource (76)
3.18.Scorm (77)
3.19.Survey (77)
3.20.url (78)
3.21.wiki (78)
3.22.workshop (78)
4.配置参数详细说明 (80)
1.引言
Moodle网络教学平台支持多样化的教学方式,可以为学习者的自主学习、协作学习及个性化学习创造一个良好的网络学习环境,目前已经在世界上很多国家和地区得到广泛的应用,并且取得很好的教学效果。

但随着互联网进入Web2.0时代,大量计算机新技术、新应用不断涌现,这对于网络课程的开发也势必要求引入更多新的计算机应用技术,同时这也给基于Moodle平台的网络课程建设提出了更多新要求。

目前,国内对Moodle平台的研究主要集中在网络课程实现与应用方面的探讨,而对平台自身的技术研究则略显不足。

本文将详细的阐述与讲解Moodle(v2.3.1)平台的关键函数和模组功能,对moodle二次开发和网络课程建设及教学实践进行将有很大的价值与意义。

关键函数功能说明
2.常用的通用API
2.1. 访问权限API
主要功能是判断当前用户权限。

同时还允许模块用来扩展Moodle功能。

2.1.1.1.提取上下文功能
1)context::instance_by_id($contextid)
2
3)返回值:$context
4)函数功能:用于实例化对象,对象将在实例化后被系统自动删除
5)注意事项:
1:如果对象没有被成功创建将抛出异常
2:被删除的用户将不再拥有对象
6)范例:
$systemcontext = context_system::instance();
$usercontext = context_user::instance($user->id);
$categorycontext = context_coursecat::instance($category->id);
$coursecontext = context_course::instance($course->id);
$contextmodule = context_module::instance($cm->id);
2.1.1.2.Determining that a user has a given capability
2.1.1.2.1.has_capability()
1
2)返回值:true/false
3)函数功能:检查用户在一个给定的环境下是否拥有一个特定的权限。

默认值是检查当前用户的权限。

4)注意事项:
1:默认值是检查当前用户的权限,不过也可以传给这个函数一个其他的用户id,默认的情况下管理员账户将返回true。

5)范例:
$context = context_module::instance($cm->id);
has_capability('mod/folder:managefiles', $context)
2.1.1.2.2.require_capability()
1
2)返回值:无
3)函数功能:检查用户在一个给定的环境下是否拥有一个特定的权限,当用户没有权限的时候抛出权限控制异常。

4)注意事项:
1:和has_capability()不同的是,require_capability()不返回布尔值。

5)范例:
require_capability('moodle/site:config', $context);
2.1.1.
3.Enrolment functions
2.1.1.
3.1.is_enrolled()
1
2)返回值:true/false
3)函数功能:判断用户是否参加该课程,对学生和教师返回ture值,对系统管理员和其他管理人员返回false值。

用户的注册可以被激活或者被暂停,被暂停的用户一般隐藏在用户界面而不能进入该课程。

4)注意事项:

5)范例:
function is_enrolled(context $context, $user = null, $withcapability = '', $onlyactive = false)
2.1.1.
3.2.get_enrolled_users()
1
2)返回值:list
3)函数功能:显示能够参与某些活动的用户名单。

4)注意事项:
此函数可获取能够参与某些活动的所有用户名单,包括没有任何角色的用户。

活动管理者可以决定清除所有的非参与活动用户的数据。

5)范例:
function get_enrolled_sql(context $context, $withcapability = '', $groupid = 0, $onlyactive = false) function get_enrolled_users(context $context, $withcapability = '', $groupid = 0, $userfields = 'u.*', $orderby = '', $limitfrom = 0, $limitnum = 0)
function count_enrolled_users(context $context, $withcapability = '', $groupid = 0)
2.1.1.4.Other related functions
2.1.1.4.1.require_login()
1)参数说明

2)返回值:无
3)函数功能:
验证用户在访问任何课程或活动之前是否已登录
验证用户以游客身份登录
验证隐藏课程和活动的访问
验证仅允许实验小组成员的访问
验证是否注册用户、是否有浏览权限用户、是否有其他一些注册插件允许以临时访客访问记录课程访问日志
4)注意事项:
某一个插件脚本在设置页面地址后都应当包含require_login() 和require_course_login() 函数。

5)范例:
function require_login($courseorid = NULL, $autologinguest = true, $cm = NULL, $setwantsurltome = true, $preventredirect = false)
2.1.1.4.2.require_course_login()
1
2
3)函数功能:
该函数仅用于允许在未登录情况下只读访问网页内容的活动,比如浏览资源文件,阅读词汇条目等。

4)注意事项:
某一个插件脚本在设置页面地址后都应当包含require_login() 和require_course_login() 函数。

5)范例:
function require_course_login($courseorid, $autologinguest = true, $cm = NULL, $setwantsurltome = true, $preventredirect = false)
2.1.1.4.
3.isguestuser(), isloggedin() and is_siteadmin()
1)参数说明

2)返回值:无
3)函数功能:
这些函数需要被预先设置来限制某些特殊帐户的访问,很多时候不必要调用他们,因为任何写入或危险的操作都会被has_capability()阻挡。

4)注意事项:
在活动模块中,强烈建议不要使用is_siteadmin(),请用标准的权限状态判断函数代替。

5)范例:
function isguestuser($user = null)
function isloggedin()
function is_siteadmin($user_or_id = null)
2.1.1.4.4.is_guest(), is_viewing() and is_enrolled()
1)参数说明

2)返回值:true/false
3)函数功能:
is_guest() -用户通过某些插件被赋予临时访客访问权限
is_viewing() –用户具有课程浏览权限(可以进入课程,但是不能视为参加该课程)
is_enrolled() -在用户注册表上记录用户活动
4)注意事项:
为了获取课程数据,用户的上述的某个函数必须返回true。

5)范例:
function is_guest(context $context, $user = null)
function is_viewing(context $context, $user = null, $withcapability = '')
2.1.1.4.5.get_users_by_capability()
1
2)返回值:list
3)函数功能:
该函数具有返回用户及其权限列表功能,忽略注册状态。

这个方法应该只用于课程内容的上一级。

4)注意事项:

5)范例:
function get_users_by_capability(context $context, $capability, $fields = '', $sort = '', $limitfrom = '', $limitnum = '',$groups = '', $exceptions = '', $doanything_ignored = null, $view_ignored = null, $useviewallgroups = false)
2.2. 数据操作API
2.2.1.1.获得一个记录
2.2.1.1.1.moodle_database::get_record()
2
3)返回值:单一数据记录
4)函数功能:以单一对象形式获得符合给定条件的一些数据。

5)注意事项:

6)范例:
get_record($table, array $conditions,$fields='*', $strictness=IGNORE_MISSING)
2.2.1.1.2.moodle_database::get_record_select()
2
3)返回值:单一数据记录
4)函数功能:以单一对象形式获得符合给定where条件的一些数据。

5)注意事项:

6)范例:
get_record_select($table, $select, array $params=null, $fields='*', $strictness=IGNORE_MISSING)
2.2.1.1.
3.moodle_database::get_record_sql()
2
3)返回值:单一数据记录
4)函数功能:以单一对象形式获得符合给定sql语句的一些数据。

5)注意事项:

6)范例:
get_record_sql($sql, array $params=null, $strictness=IGNORE_MISSING)
2.2.1.2.获得一个散列数组的记录
2.2.1.2.1.moodle_database::get_records()
2
3
4)函数功能:以对象数组形式获得符合给定条件的一些数据。

5)注意事项:

6)范例:
get_records($table, array $conditions=null, $sort='', $fields='*', $limitfrom=0, $limitnum=0)
2.2.1.2.2.moodle_database::get_records_select()
2
3
4)函数功能:以对象数组形式获得符合给定where条件的一些数据。

5)注意事项:

6)范例:
get_records_select($table, $select, array $params=null, $sort='', $fields='*', $limitfrom=0, $limitnum=0)
2.2.1.2.
3.moodle_database::get_records_sql()
2
3
4)函数功能:通过使用SQL语句以对象数组形式获得一些数据。

该方法作为moodle数据库的一个抽象函数,被应用于每个数据库类型。

5)注意事项:

6)范例:
get_records_sql($sql, array $params=null, $limitfrom=0, $limitnum=0)
2.2.1.2.4.moodle_database:: get_records_list ()
2
3)返回值:对象数组
4)函数功能:以对象数组形式获得一些数据,其中一个字段的值匹配一个列表。

5)注意事项:

6)范例:
get_records_list($table, $field, array $values, $sort='', $fields='*', $limitfrom='', $limitnum='')
2.2.1.2.5.moodle_database:: get_records_menu ()
2
3
4)函数功能:以一个符合所有给定的条件的关联数组形式,从一些记录中获得前两列数据。

可以选择前两个字段或者让该参数保持空白,该方法以一个关联数组形式返回表中的前两列。

5)注意事项:

6)范例:
get_records_menu($table, array $conditions=null, $sort='', $fields='*', $limitfrom=0, $limitnum=0)
2.2.1.2.6.moodle_database:: get_records_select_menu ()
2
3)返回值:对象数组
4)函数功能:从一些记录中获得匹配特定的WHERE语句的前两列数据。

5)注意事项:

6)范例:
get_records_select_menu($table, $select, array $params=null, $sort='', $fields='*', $limitfrom=0, $limitnum=0)
2.2.1.2.7.moodle_database:: get_records_sql_menu ()
2
3
4)函数功能:通过使用SQL语句以一个关联数组形式从一些记录中获得前两列数据。

5)注意事项:

6)范例:
get_records_sql_menu($sql, array $params=null, $limitfrom=0, $limitnum=0)
2.2.1.
3.检查有多少匹配给定标准的记录
2.2.1.
3.1.moodle_database:: count_records ()
2
3)返回值:数字
4)函数功能:返回表中符合条件的记录数。

5)注意事项:

6)范例:
count_records($table, array $conditions=null)
2.2.1.
3.2.moodle_database:: count_records_select ()
2
3
4)函数功能:返回表中符合条件的记录数,必须匹配特定的WHERE语句。

5)注意事项:

6)范例:
count_records_select($table, $select, array $params=null, $countitem="COUNT('x')")
2.2.1.
3.3.moodle_database:: count_records_sql ()
2
3)返回值:数字
4)函数功能:返回表中符合条件的记录数,必须匹配特定的sql语句。

5)注意事项:

6)范例:
count_records_sql($sql, array $params=null)
2.2.1.4.检查某个记录是否存在
2.2.1.4.1.moodle_database:: record_exists ()
2
3)返回值:true/false
4)函数功能:检查某个记录是否存在在被查询的表中。

5)注意事项:

6)范例:
record_exists($table, array $conditions=null)
2.2.1.4.2.moodle_database:: record_exists_select ()
2
3)返回值:true/false
4)函数功能:检查某个记录是否存在在被查询的表中,查询必须符合某种where条件。

5)注意事项:

6)范例:
record_exists_select($table, $select, array $params=null)
2.2.1.4.
3.moodle_database:: record_exists_sql ()
2
3)返回值:true/false
4)函数功能:检查某个记录是否存在在被查询的表中,查询必须符合sql条件。

5)注意事项:

6)范例:
record_exists_sql($sql, array $params=null)
2.2.1.5.从一个记录获得一个特定的字段值
2.2.1.5.1.moodle_database:: get_field()
2
3)返回值:单个字段值
4)函数功能:在符合条件的基础上从一个记录获得一个特定的字段值。

5)注意事项:

6)范例:
get_field($table, $return, array $conditions, $strictness=IGNORE_MISSING)
2.2.1.5.2.moodle_database:: get_field_select()
2
3)返回值:单个字段值
4)函数功能:在符合Where条件的基础上从一个记录获得一个特定的字段值。

5)注意事项:

6)范例:
get_field_select($table, $return, $select, array $params=null, $strictness=IGNORE_MISSING)
2.2.1.5.
3.moodle_database:: get_field_sql()
2
3
4)函数功能:在符合sql条件的基础上从一个记录获得单个的字段值。

5)注意事项:

6)范例:
get_field_sql($sql, array $params=null, $strictness=IGNORE_MISSING)
2.2.1.6.从不同的记录获得一个特定的字段值
2.2.1.6.1.moodle_database:: get_fieldset_select()
2
3)返回值:单个字段值
4)函数功能:在符合条件的基础上从多个记录获得一个特定的字段值。

5)注意事项:

6)范例:
get_fieldset_select($table, $return, $select, array $params=null)
2.2.1.6.2.moodle_database:: get_fieldset_sql()
2
3)返回值:单个字段值
4)函数功能:在符合sql条件的基础上从多个记录获得单个的字段值。

5)注意事项:

6)范例:
get_fieldset_sql($sql, array $params=null)
2.2.1.7.在数据库设定一个特定字段
2.2.1.7.1.moodle_database:: set_field()
2
3
4)函数功能:在符合条件的基础上在数据表上设定一个特定的字段值。

5)注意事项:

6)范例:
set_field($table, $newfield, $newvalue, array $conditions=null)
2.2.1.7.2.moodle_database:: set_field_select()
2
3)返回值:无
4)函数功能:在符合where条件的基础上在数据表上设定一个特定的字段值。

5)注意事项:

6)范例:
set_field_select($table, $newfield, $newvalue, $select, array $params=null) 2.2.1.8.删除记录
2.2.1.8.1.moodle_database:: delete_records()
2
3)返回值:无
4)函数功能:在特定表中删除记录。

5)注意事项:

6)范例:
delete_records($table, array $conditions=null)
2.2.1.8.2.moodle_database:: delete_records_select()
2
3
4)函数功能:在符合条件的基础上在特定表中删除记录。

5)注意事项:

6)范例:
delete_records_select($table, $select, array $params=null)
2.2.1.9.插入记录
2.2.1.9.1.moodle_database:: insert_record()
2
3)返回值:插入的数据行的id
4)函数功能:在特定的表中插入特定是数据,并返回插入的数据行的id。

5)注意事项:

6)范例:
insert_record($table, $dataobject, $returnid=true, $bulk=false)
2.2.1.10.更新记录
2.2.1.10.1.moodle_database:: update_record()
2
3)返回值:true/false
4)函数功能:在数据表中更新记录。

5)注意事项:

6)范例:
update_record($table, $dataobject, $bulk=false)
2.2.1.11.使用记录集
2.2.1.11.1.moodle_database:: get_recordset()
2
3
4)函数功能:获得符合条件的数据集。

5)注意事项:

6)范例:
get_recordset($table, array $conditions=null, $sort='', $fields='*', $limitfrom=0, $limitnum=0)
2.2.1.11.2.moodle_database:: get_recordset_select()
2
3)返回值:数据集
4)函数功能:获得符合where条件的数据集。

5)注意事项:

6)范例:
get_recordset_select($table, $select, array $params=null, $sort='', $fields='*', $limitfrom=0, $limitnum=0)
2.2.1.11.
3.moodle_database:: get_recordset_sql()
2
3)返回值:数据集
4)函数功能:获得符合sql条件的数据集。

5)注意事项:

6)范例:
get_recordset_sql($sql, array $params=null, $limitfrom=0, $limitnum=0)
2.2.1.11.4.moodle_database:: get_recordset_list()
2
3)返回值:数据集
4)函数功能:获得符合列表的值的数据集。

5)注意事项:

6)范例:
get_recordset_list($table, $field='', $values='', $sort='', $fields='*', $limitfrom='', $limitnum='')
2.2.1.12.委托事务
请注意有些数据库不支持事物(比如MyISAM MySQL数据库引擎),然而强力建议所有的服务器管理员迁移到支持事物的数据库(比如InnoDB MySQL数据库引擎)。

以前的版本只支持一个级别的事务。

自从Moodle 2.0,DML层可以仿真授权的允许嵌套的事务。

在Moodle的核心中不应使用过多的事物;他们主要服务于比如网络服务器,登记,和身份验证插件这类各种插件。

一些子系统(比如消息传送)不支持事物,因为在外部系统中实现回滚是不可能的。

2.2.1.12.1.start_delegated_transaction()
2)参数说明

3)返回值:无
4)函数功能:开始一个委托事务。

5)注意事项:

6)范例:
$transaction = $DB->start_delegated_transaction();
2.2.1.12.2.allow_commit()
2)参数说明

3)返回值:无
4)函数功能:提交一个委托事务。

5)注意事项:

6)范例:
$transaction->allow_commit();
2.2.1.12.
3.rollback($ex)
2)参数说明
Ex:异常信息
3)返回值:无
4)函数功能:在程序中遇到异常时,抛出异常信息。

5)注意事项:
如果在出现异常的地方没有加入rollback处理,则异常将不会被捕捉,抛出,系统将出现错误。

6)范例:
$transaction->rollback($ex);
2.2.1.1
3.帮助模块
2.2.1.1
3.1.sql_bitand($int1, $int2)
2)参数说明
2个整数
3)返回值:sql语句
4)函数功能:返回一个sql语句返回2个数之间的and运算。

5)注意事项:

6)范例:
$DB->sql_bitand($int1, $int2)
2.2.1.1
3.2.sql_bitnot($int1)
2)参数说明
1个整数
3)返回值:sql语句
4)函数功能:返回一个sql语句返回1个数的not运算。

5)注意事项:

6)范例:
$DB->sql_bitnot($int1)
2.2.1.1
3.3.sql_bitor($int1, $int2)
2)参数说明
2个整数
3)返回值:sql语句
4)函数功能:返回一个sql语句返回2个数之间的or运算。

5)注意事项:

6)范例:
$DB->sql_bitor($int1, $int2)
2.2.1.1
3.
4.sql_bitxor($int1, $int2)
2)参数说明
2个整数
3)返回值:sql语句
4)函数功能:返回一个sql语句返回2个数之间的xor运算。

5)注意事项:

6)范例:
$DB->sql_bitxor($int1, $int2)
2.2.1.1
3.5.sql_null_from_clause()
2)参数说明

3)返回值:sql从句
4)函数功能:返回某些数据库查询需要的from从句。

5)注意事项:

6)范例:
$DB->sql_null_from_clause()
2.2.1.1
3.6.sql_ceil($fieldname)
2)参数说明
字段名
3)返回值:sql从句
4)函数功能:返回运用在某个字段上的正确的CEIL表达式。

5)注意事项:

6)范例:
$DB->sql_ceil($fieldname)
2.2.1.1
3.7.sql_like($fieldname, $param, $casesensitive = true,
$accentsensitive = true, $notlike = false, $escapechar = ' \\ ') 2)参数说明
3)返回值:sql从句
4)函数功能:返回一个sql语句处理like匹配操作。

5)注意事项:

6)范例:
$DB->get_records_sql('SELECT A WHERE '.$DB->sql_like('idnumber', ':idnum').'', array( 'idnum' => 'foo'));
2.2.1.1
3.8.sql_length($fieldname)
2)参数说明
3)返回值:sql从句
4)函数功能:返回一个sql语句计算某个表达式的字符长度。

5)注意事项:

6)范例:
$DB->sql_length($fieldname)
2.2.1.1
3.9.sql_modulo($int1, $int2)
2)参数说明
3)返回值:sql从句
4)函数功能:返回一个sql语句计算一个数字被另外一个数字整除的余数。

5)注意事项:

6)范例:
$DB->sql_modulo($int1, $int2)
2.2.1.1
3.10.sql_position($needle, $haystack)
2
3)返回值:sql从句
4)函数功能:返回一个sql语句查询一个字符串在另外一个字符串中的位置。

5)注意事项:

6)范例:
$DB->sql_position($needle, $haystack)
2.2.1.1
3.11.sql_substr($expr, $start, $length=false)
2
3)返回值:sql从句
4)函数功能:返回合适的sql语句用于查询数据库中查询返回合适的字符子串。

5)注意事项:

6)范例:
$DB->sql_substr($expr, $start, $length=false)
2.2.1.1
3.12.sql_cast_char2int($fieldname)
2
3)返回值:sql从句
4)函数功能:返回一个sql语句用于转化一个字符型字段为整数型。

5)注意事项:
整数型字段和字符型字段必须都被数据库兼容
6)范例:
$DB->sql_cast_char2int($fieldname, $text=false)
2.2.1.1
3.13.sql_cast_char2real($fieldname)
2
3)返回值:sql从句
4)函数功能:返回一个sql语句用于转化一个字符型字段为实数型。

5)注意事项:
实数型字段和字符型字段必须都被数据库兼容
6)范例:
$DB->sql_cast_char2real($fieldname, $text=false)
2.2.1.1
3.1
4.sql_compare_text($fieldname)
2
3)返回值:sql从句
4)函数功能:返回一个sql语句用于比较一个字符型的字段和text型的字段。

5)注意事项:
Text型字段和字符型字段必须都被数据库兼容
6)范例:
$DB->sql_compare_text($fieldname)
2.2.1.1
3.15.sql_order_by_text($fieldname)
2
3)返回值:sql从句
4)函数功能:返回一个sql语句用于排序text型的字段。

5)注意事项:

6)范例:
$DB->sql_order_by_text($fieldname)
2.2.1.1
3.16.sql_concat()
2)参数说明

3)返回值:sql从句
4)函数功能:返回一个sql语句在一系列元素中做连接运算。

5)注意事项:
6)范例:
$DB->sql_concat()
2.2.1.1
3.17.sql_concat_join($separator="' '", $elements=array()) 2
3)返回值:sql从句
4)函数功能:返回一个sql语句在一系列以分隔符为分隔的元素中做连接运算。

5)注意事项:
6)范例:
$DB->sql_concat_join($separator="' '", $elements=array())
2.2.1.1
3.18.sql_fullname($first='firstname', $last='lastname') 2
3)返回值:sql从句
4)函数功能:返回一个sql语句连接姓和名。

5)注意事项:
6)范例:
$DB->sql_fullname($first='firstname', $last='lastname')
2.2.1.1
3.19.sql_isempty($tablename,$fieldname,$nullablefield,$textfield) 2
3)返回值:sql从句
4)函数功能:返回一个sql语句查询是否某个表的某字段为空。

5)注意事项:
6)范例:
$DB->sql_isempty($tablename, $fieldname, $nullablefield, $textfield)
2.2.1.1
3.20.sql_isnotempty($tablename,$fieldname,$nullablefield,$textfie
ld)
2
3)返回值:sql从句
4)函数功能:返回一个sql语句查询是否某个表的某字段不为空。

5)注意事项:
6)范例:
$DB->sql_isnotempty($tablename, $fieldname, $nullablefield, $textfield)
2.2.1.1
3.21.sql_empty()
2)参数说明

3)返回值:字符串
4)函数功能:返回数据库支持的空字符串。

5)注意事项:
6)范例:
$DB->sql_empty()
2.3. 文件API
文件API用于管理所有存储在Moodle上的文件,功能包括:
1:命名文件区域
2:向用户提供文件
3:从用户获得文件
4:各种文件操作
请注意在实际的开发中,开发者一般不直接与文件API打交道,而是操作formslib元素自动操作文件,所以以下的文件操作功能只举例,不讲解函数:
2.3.1.1.浏览文件
2.3.1.1.1.get_file_browser()
2)参数说明

3)返回值:页面的浏览器对象
4)函数功能:获取当前使用的浏览器对象
5)注意事项:

6)范例:
$browser = get_file_browser();
2.3.1.1.2.get_system_context()
2)参数说明

3)返回值:系统内容
4)函数功能:获取当前系统内容,当系统内容不能被创建的时候就返回空
5)注意事项:

6)范例:
$context = get_system_context();
2.3.1.1.3.get_file_info($filename)
2
3)返回值:文件内容的数组
4)函数功能:查找一个文件的具体信息
5)注意事项:

$browser->get_file_info($filename)
2.3.1.1.4.get_parent()
2)参数说明

3)返回值:父对象的所有信息数组
4)函数功能:返回父对象的所有信息
5)注意事项:

6)范例:
$fileinfo->get_parent()
2.3.1.1.5.get_visible_name()
2)参数说明

3)返回值:父对象的所有信息数组
4)函数功能:返回父对象的所有信息
5)注意事项:

6)范例:
$name->get_visible_name()
2.3.1.1.6.get_children()
2)参数说明

3)返回值:子对象的所有信息数组
4)函数功能:返回父对象的所有的子对象的所有信息,在默认的情况下仅仅返回第一级子对象的信息,其他的子对象的信息也可返回。

5)注意事项:
所有的子对象信息都被默认排序
6)范例:
$name-> get_children()
2.3.1.1.7.get_children()
2)参数说明

3)返回值:布尔值,指示是否为字典索引
4)函数功能:返回当前对象是否为字典索引。

5)注意事项:

$child-> is_directory()
2.3.1.2.移动文件
2.3.1.2.1.get_file_storage()
2)参数说明

3)返回值:返回文件存储实例
4)函数功能:返回当前对象的文件存储实例。

5)注意事项:

6)范例:
$file-> get_file_storage()
2.3.1.2.2.create_file_from_pathname($file_Path, $file)
2
3)返回值:返回文件对象
4)函数功能:在指定的路径创建指定的文件。

5)注意事项:

6)范例:
$fs->create_file_from_pathname($file_record, $from_zip_file)
2.3.1.3.获取列表区域文件
2.3.1.3.1.get_area_files($contextid, $component, $filearea, $itemid = false,
$sort="sortorder, itemid, filepath, filename", $includedirs = true) 2
3)返回值:所有指定位置文件对象
4)函数功能:返回所有指定位置的文件对象。

5)注意事项:

6)范例:
$fs-> get_area_files($contextid, $component, $filearea, $itemid = false, $sort="sortorder, itemid, filepath, filename", $includedirs = true)
2.3.1.3.2.get_filename()
2)参数说明

3)返回值:返回文件名
4)函数功能:为指定的文件对象返回文件名。

5)注意事项:

6)范例:
$f->get_filename()
2.3.1.3.3.get_filepath()
2)参数说明

3)返回值:返回文件深度
4)函数功能:为指定的文件对象返回文件深度。

5)注意事项:

6)范例:
$f-> get_filepath()
2.3.1.3.4.get_itemid()
2)参数说明

3)返回值:项目id
4)函数功能:返回和评论相关的项目id。

5)注意事项:

6)范例:
$f-> get_itemid()
2.3.1.4.创建文件
2.3.1.4.1.create_file_from_string($fileinfo, $filecontent)
2
3)返回值:文件对象
4)函数功能:创建指定文件内容的对象。

5)注意事项:

6)范例:
$f-> create_file_from_string($fileinfo, 'hello world')
2.3.1.5.读取文件
请注意只可于mod/mymodule/* code下这样读取文件,在其他任何情况下都不可这样做,而是要通过use file_browser接口,由于读取文件的函数在前面几节已经介绍,下面只给出代码示例即可:范例:
$fs = get_file_storage();
// Prepare file record object
$fileinfo = array(
'contextid' => $context->id, // ID of context
'component' => 'mod_mymodule', // usually = table name
'filearea' => 'myarea', // usually = table name
'itemid' => 0, // usually = ID of row in table
'filepath' => '/', // any path beginning and ending in /
'filename' => 'myfile.txt'); // any filename
// Create file containing text 'hello world'
$fs->create_file_from_string($fileinfo, 'hello world');
2.3.1.6.删除文件
2.3.1.6.1.delete()
2)参数说明

3)返回值:无
4)函数功能:删除指定文件。

5)注意事项:

2.4. 表单API
moodle的网站表单主要通过forms API来创立。

Form API 在提高可访问性和安全性的基础上支持所有的html元素
2.4.1.1.常用函数
2.4.1.1.1.add_action_buttons($cancel = true, $submitlabel=null)
2)参数说明

3)返回值:无
4)函数功能:常用的辅助函数,作为一种moodle表单方法用来添加所有的“活动”按钮来结束表单。

一个布尔参数用来允许规定是否要包括一个取消按钮和设定提交按钮标签。

提交按钮标签的默认值为get_string('savechanges')
5)注意事项:

6)范例:
$this->add_action_buttons();
2.4.1.1.2.setDefault($elementname, $value)
2)参数说明
3)返回值:无
4)函数功能:为一个元素设置默认值
5)注意事项:

6)范例:
$mform->setHelpButton('grade', array('grade', get_string('gradeforsubmission', 'exercise'), 'exercise'));
$mform->setDefault('grade', 100);
2.4.1.1.
3.disabledIf($elementName, $dependentOn, $condition = 'notchecked',
$value='1')
2)参数说明
3)返回值:无
4)函数功能:有条件地禁用一个表单内的任何元素或元素组
5)注意事项:

6)范例:
$mform->disabledIf('mycontrol', 'somecheckbox');
2.4.1.1.4.addRule()
2)参数说明
第一个参数‘element’是元素名,第2个参数是展示给用户的错误信息;第3个参数‘type’是约束类型。

第4个参数‘format’格式约束。

第5个参数‘validation’是验证服务器端或客户端的数据。

3)返回值:无
4)函数功能:对于服务器/客户端验证添加规则。

比如文本字段是必需的元素,类型必须是电子邮件
5)注意事项:
一旦客户端验证完成,服务器端也将完成验证。

6)范例:
$mform->addRule('elementname', get_string('error'), 'rule type', 'extraruledata', 'server'(default), false, false);
2.4.1.1.5.setHelpButton()
2
3)返回值:无
4)函数功能:设置表单内的弹出帮助按钮元素
5)注意事项:

6)范例:
setHelpButton('api_key_field', 'api_key', 'block_extsearch');
2.4.1.1.6.addHelpButton()
2
3)返回值:无
4)函数功能:添加表单内的弹出帮助按钮元素
5)注意事项:

6)范例:
addHelpButton('api_key_field', 'api_key', 'block_extsearch');
2.4.1.1.7.setType()
2)参数说明

3)返回值:无
4)函数功能:设置参数类型(参数类型被用来指定一个已经提交的变量该如何应该清理)
5)注意事项:

6)范例:
setType(PARAM_CLEAN);
2.5. 日志API
日志API允许用户添加整个记录到moodle的日志记录中,并且可定义它们在报表中怎么展示。

日志API都是在lib/datalib.php,在页面设置的过程中被自动包含进来
2.5.1.1.添加数据日志
2.5.1.1.1.add_to_log()
2
3)返回值:无
4)函数功能:
该函数是用于添加所有的日志到Moodle的一个基本核心函数。

5)注意事项:
在使用这个函数添加数据日志的时候,请记住该函数更像是一个面向“活动”的函数,而非基于“网络服务器请求”。

6)范例:
add_to_log($course->id, 'role', 'assign', 'assign.php?contextid='.$context->id.'&roleid='.$roleid, $rolename, '', $USER->id);
2.5.1.1.2.get_logs_userday()
2
3)返回值:无
4)函数功能:
该函数是用于记录用户上传进入系统或某课程的时间。

5)注意事项:
在使用这个函数添加数据日志的时候,请记住该函数更像是一个面向“活动”的函数,而非基于“网络服务器请求”。

6)范例:
$courseid = $course->id;
user_accesstime_log($courseid);
2.5.1.2.获取日志
2.5.1.2.1.get_logs()
2)参数说明
各种sql语句的参数。

3)返回值:
日志数据
4)函数功能:
该函数是用是一个用来获取基于给定的SQL条件日志数据的通用函数。

5)注意事项:

6)范例:
$logs = get_logs($selector, $params, $order, $limitfrom, $limitnum, $totalcount);
2.5.1.2.2.get_logs_usercourse()
2
3)返回值:
日志数据
4)函数功能:
该函数用来向一个给定的具体课程和用户返回日志数据。

5)注意事项:

6)范例:
$logs = get_logs_usercourse($user->id, $courseselect, $coursestart);
2.5.1.2.
3.get_logs_userday()
2
3)返回值:
日志数据
4)函数功能:
该函数用来返回针对具体课程和用户的特定日期的日志。

5)注意事项:

6)范例:
$daystart = usergetmidnight(time());
$logs = get_logs_userday($user->id, $courseselect, $daystart);
2.6. 导航API
导航API允许用户添加和操作导航菜单上的节点。

2.6.1.1.工作原理
主要的导航功能可以通过$PAGE->navigation访问。

导航和设置是基于当前情境,因为它们与当前用户浏览的页面相关,取决于页面设置属性。

●$PAGE->context即时地概括当前用户所浏览页面的属性。

●$PAGE->course 是前用户所浏览的课程。

●$PAGE->cm是课程模块实例。

●$PAGE->url用于匹配当前导航项。

几乎所有的页面设置$PAGE->url是通过$PAGE->set_url,然而,不是每次导航都明确的指定了导
航的方向是内容、课程或课程管理;当在一个课程管理中调用require_login函数时。

系统会自动的如下调用:
if ($cm) {
$PAGE->set_cm($cm, $course); // set's up global $COURSE
} else {
$PAGE->set_course($course);// set's up global $COURSE
2.6.1.2.常用函数
2.6.1.2.1.add($nodename, $url)
2
3)返回值:导航节点对象
4)函数功能:增加一个导航节点
5)注意事项:

6)范例:
add(get_string('setting'), new moodle_url('/a/link/if/you/want/one.php');
2.6.1.2.2.make_active()
2)参数说明:

3)返回值:导航节点对象
4)函数功能:激活一个导航节点
5)注意事项:

6)范例:
$thingnode->make_active();
2.6.1.2.
3.ignore_active(bool)
2)参数说明:
True/false
3)返回值:导航节点对象
4)函数功能:打开或关闭忽略激活导航节点功能
5)注意事项:
默认为true
6)范例:
$thingnode-> ignore_active();
2.7. 页面API
用于设置当前页面,添加Javascript,配置页面的呈现方式
2.7.1.1.工作原理
要在moodle上创设一个页面,必须先进行一系列的设置:
1:URL,这是一个必须的设置,否则moodle会显示一个关于“URL没有被设置”的错误提示。

URL可以被这样设置:
$PAGE->set_url(new moodle_url('/page/to/your/file.php', array('key' => 'value', 'id' => 3)));
$PAGE->set_url('/page/to/your/file.php', array('key' => 'value', 'id' => 3));
$PAGE->set_url('/page/to/your/file.php?key=value&id=3');
2:context,这也是一个必须的设置。

为了为页面设置context,必须提供一个context对象。

context的设置在moodle2.2及其以上版本如下:
// Moodle 2.2 and greater
$PAGE->set_context(context_system::instance());
$PAGE->set_context(context_coursecat::instance($categoryid));
$PAGE->set_context(context_course::instance($courseid));
$PAGE->set_context(context_module::instance($moduleid));
其他的为可选的设置,将在下节常用函数中介绍。

2.7.1.2.设置常用函数
2.7.1.2.1.set_pagelayout($layouttype)
2
3)返回值:无
4)函数功能:设置页面布局
5)注意事项:

6)范例:
$PAGE->set_pagelayout('standard');
2.7.1.2.2.set_title()
2)参数说明

3)返回值:无
4)函数功能:设置页面标题
5)注意事项:

6)范例:
$PAGE->set_title('This is my title');
2.7.1.2.
3.set_heading($headname)
2
3)返回值:无
4)函数功能:设置页面头
5)注意事项:

6)范例:
$PAGE->set_heading(get_string('pluginname', 'local_myplugin'), 3);
2.7.1.2.4.set_activity_record($activityrecord)
2
3)返回值:无
4)函数功能:设置活动模块记录
5)注意事项:
如果你为一个课程模块调用require_login函数,或者你手动地在$PAGE上设置一个课程模块,那么你可能想要做的是同时在$PAGE上设置活动模块记录
6)范例:
$PAGE->set_activity_record($activityrecord)
2.7.1.2.5.set_blocks_editing_capability($strcapability)
2
3)返回值:无
4)函数功能:
使用这种方法你可以设置一个用户在能够编辑页面的块之前必须具有的额外的权限。

5)注意事项:

6)范例:
$PAGE->set_blocks_editing_capability($strcapability)
2.7.1.2.6.set_button($htmlstring)
2
3)返回值:无
4)函数功能:
允许你设置一些HTML,并将其显示在导航栏的“打开编辑”按钮。

5)注意事项:

6)范例:
$PAGE->set_button($htmlstring)
2.7.1.2.7.set_cacheable(true/false)
2
3)返回值:无
4)函数功能:
通过设置这个为false值,文件头将随同页面一起被发送,以防止从客户端缓存页面。

默认值为true。

5)注意事项:

6)范例:
$PAGE->set_cacheable(true/false)
2.7.1.2.8.set_category_by_id($categoryid)
2
3)返回值:无
4)函数功能:
允许你设置一个页面显示类别。

调用此函数将迫使页面>课程设置为头版课程。

5)注意事项:

6)范例:
$PAGE->set_category_by_id($categoryid)
2.7.1.2.9.set_cm($coursemodulerecord)
2
3)返回值:无
4)函数功能:
设置课程模块
5)注意事项:

6)范例:
$PAGE->set_cm($coursemodulerecord)
2.7.1.2.10.set_course($courserecord)
2
3)返回值:无
4)函数功能:
设置当前页面所属课程。

通常情况下,当您调用require_login函数时,课程会自动发送$PAGE给你。

但是,如果你不想课程需要登录,你需要先调用它在$PAGE,然后再调用set_course函数来提供它。

5)注意事项:
注意,如果你这样做,那么你必须通过set_context使用课程的context。

6)范例:
$PAGE->set_course($courserecord)
2.7.1.2.11.set_docs_path($strpath)
2
3)返回值:无
4)函数功能:
该方法使你允许某几页指向相同的文档页面,而非要求每一页一个文档页面。

通常情况下,这个会自动创立,但是在有些情况下你可以选择手动设置它。

文档页面链接通常由主题显示在页脚。

5)注意事项:

6)范例:
$PAGE->set_docs_path($strpath)。

相关文档
最新文档