-
Notifications
You must be signed in to change notification settings - Fork 23
如果编写一个module(2)—— 数据库相关
其实,你可以用moodle提供的DBXML编辑器来写这个文件,但是那样我觉的不是很自由,咱们还是用xml来写哈: `
<TABLE NAME="gboard_list" COMMENT="Default comment for the table, please edit me" PREVIOUS="gboard">
<FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" NEXT="main_id"/>
<FIELD NAME="main_id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="false" PREVIOUS="id" NEXT="givee"/>
<FIELD NAME="givee" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" PREVIOUS="main_id" NEXT="reason"/>
<FIELD NAME="reason" TYPE="text" LENGTH="medium" NOTNULL="false" SEQUENCE="false" PREVIOUS="givee" NEXT="givor"/>
<FIELD NAME="givor" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" PREVIOUS="reason"/>
</FIELDS>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id"/>
</KEYS>
</TABLE>
</TABLES>
以上就是XML格式的数据库,我相信你已经顾名思义了; 但是你要注意几点: 1.第一个表,不要改,这个表都是这样子的,而且这个表的名字必须是你文件夹的名字!这个表体现的是哪门课使用了你的插件! 2.第二个表以后都是随意的改的,这个可以设置一个外键到第一个表上。 3.SEQUENCE 这个属性,就是auto-increasement,这个意思;这里规定,SEQUENCE=true的必须是主键,而且只能有一个!
function xmldb_newmodule_install() {} function xmldb_newmodule_install_recovery() {}
function xmldb_newmodule_uninstall() {return true; /*卸载成功*/}
function xmldb_newmodule_upgrade($oldversion){};
$capabilities = array ( 'mod/gboard:view' => array( //是读还是写; 'captype' => 'read', //上下文的级别; 'contextlevel' => CONTEXT_MODULE, //以下是每个人物的权限,人物顾名思义,权限也是! 'legacy' => array( 'guest' => CAP_PROHIBIT, 'student' => CAP_PREVENT, 'teacher' => CAP_ALLOW, 'editingteacher' => CAP_ALLOW, 'admin' => CAP_ALLOW ) ), );
好了,到此数据库相关的文件,你就明白了大体的意思了,我们开始,进入一下各个文件的分析阶段哈。