@tony-yin
2017-08-10T10:37:05.000000Z
字数 1668
阅读 985
Moodle
Local 插件在 Moodle 中相比于其他插件算是比较容易上手的一个插件,Local 插件中前后台分离,不用遨游在杂糅前后端的代码里。学会 Local 插件是上手其他插件的前提,其实一旦学会 Local 插件也会发现其他插件不过是它的一种变种形式罢了,只要举一反三就能很快掌握。
服务器配置了相应的 url,所以每个插件的加载首页都是 index.php,但是并不意味着页面的代码就在 index.php 中,首先在 index.php 中调用 renderer.php 中相应的页面渲染方法,例如 render_index_page($page)
方法:
public function render_index_page($page) {
$data = $page->export_for_template($this);
render_from_template('local_xxx/index', $data)
}
index_page
这个类中的 export_for_template
方法,获得页面静态加载需要的数据,例如 mustache模板需要的数据,data 数组的索引与模板名称一一对应,例如 mustache 文件中若有 {{#user}} hello !{{/user}}
,那么对应 class 一定存在 $data['user'] = xxxx
;render_from_template('local_xxx/index', $data)
为例, local_xxx/index
,template 目录下必定有文件名为 index.mustache 的文件,这是 moodle 封装好的命名规范,而 mustache 文件就是页面展示的代码所在了;{{#js}} require xxx {{/js}}
引入对应的 JavaScript 文件;每个 local 插件中都存在一个 style.css 这样的一个 css 样式文件,系统运行时,会将每个模块的 css 文件内容合并到一起,所以如果有两个名称一样的 css,则会发生覆盖的现象,所以建议起名字统一在最前面加上当前的插件名称,要注意的是,每次新增、修改或者删除 css 文件内容后,如若需要立即查看效果,必要以 admin 角色进入系统,然后清空缓存;
目前系统中的 js 是基于 RequireJS 框架,遵循 AMD 开发规范,利用 Grunt 构建的。amd 目录下有 src 目录和 build 目录,src 下的 xxx.js 是供开发时编写调试使用,而 build 目录下的 min.js 则是网站实际运行时所使用的 js 文件,经过压缩可以大幅度提升运行速度。所以每次修改 js 完毕后,提交代码切勿忘记生成对应的 min.js 文件并提供,生成命令为 grunt uglify
;
get_string(字符串名, 插件名)
{{#str}}字符串名, 插件名{{/str}}
作者:Tony
2017年02月28日