moodle插件开发国内可参考资料少的可怜,该笔记为完成毕设过程整理,囊括插件目录结构自动化创建工具使用、插件数据库创建工具使用、插件开发调试技巧、插件开发必备php基础知识及moodle平台封装源码解读等。
其中还包括自己开发的插件的一些内容,所以请读者自行判断择需阅读,写这篇博客的目的是将插件的大致开发流分享给大家,让大家尽快上手,具体的知识请到moodle官网阅读英文开发手册。
整理匆忙难免有纰漏,还请各位读者指正,不胜感激。
0、php相关:
参考教程:
http://www.runoob.com/php/php-variables.html
数据类型:http://www.runoob.com/php/php-datatypes.html
变量作用域:http://www.runoob.com/php/php-variables.html
输出方式区别(笔记部分):http://www.runoob.com/php/php-datatypes.html
常量定义使用:http://www.runoob.com/php/php-constants.html
1、插件目录结构:(使用第3点的工具自动构造,不用自己写)
2、教程(插件开发教程,统统浏览一遍)
参考:https://docs.moodle.org/dev/Tutorial
3、自动构造工具:(用于构造插件的目录结构)
参考:https://docs.moodle.org/36/en/Plugin_skeleton_generator#Example
4、xmldb使用(用于设计数据库,建表、字段、外键,会生成install.xml文件)
参考:https://docs.moodle.org/dev/XMLDB_editor
5、公认的bug:对中文兼容性不好,目前官方也没有较好的解决办法。
解决办法:
0、eclipse---选中文件---设置属性---编码设置成UTF-8然后再输入中文字符。(亲测有效)
1、config.php加入
$CFG->unicodecleanfilename = true;
===============================1.9试了下只要改这个就可以了
(lib/editor/htmlarea/coursefiles.php),在第二行加上这样一句:
2、@header("Content-Type: text/html; charset=utf-8");
6、类命名参考:
https://docs.moodle.org/dev/Frankenstyle
7、定义插件功能权限(重点):
文件:access.php
参考:https://docs.moodle.org/dev/Access_API
https://docs.moodle.org/dev/NEWMODULE_Adding_capabilities
角色风险定级参考:
https://docs.moodle.org/dev/Hardening_new_Roles_system
角色原型参考:
https://docs.moodle.org/dev/Role_archetypes
数据库部分:
注册活动:
https://docs.moodle.org/dev/Enrolment_API
8、插件表单页面:
参考:https://docs.moodle.org/dev/Form_API
9、stringAPI
参考:https://docs.moodle.org/dev/String_API
get_string('editingquiz','mod_quiz'),字符串名,插件名。
各种骚操作都有。
10、moodle平台编码调试技巧:(重点)
0、直接naginx\html\mod\codemanagement下用eclipse打开待编辑的文件编辑保存然后刷新网站即可。
1、平台调试:
网站管理----开发----保存更改
2、前端调试:
输出一般值:
echo("");
echo("");
输出数组对象值:
echo("");
echo("