博客
关于我
Moodle Local 插件讲解
阅读量:798 次
发布时间:2023-02-09

本文共 1732 字,大约阅读时间需要 5 分钟。

Moodle Local 插件讲解


Local插件在Moodle中相比于其他插件算是比较容易上手的一个插件,Local插件中前后台分离,不用遨游在杂糅前后端的代码里。学会Local插件是上手其他插件的前提,其实一旦学会Local插件也会发现其他插件不过是它的一种变种形式罢了,只要举一反三就能很快掌握。

image

前端

服务器配置了相应的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/indextemplate目录下必定有文件名为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

后端

1. access.php

主要负责记录权限的配置;

2. service.php

负责接收 ajax 提交,配置对应的后台 API 的类名、路径 和方法名等信息,并将对应的ajax方法存入数据库中;

3. install.xml

用于安装系统时表结构的对应生成;

4. install.php

用于安装系统时数据库的缺省数据的提供;

5. upgrade.php

用于系统表结构变化等版本升级事项的实现,由于生产环境中客户已有大量数据存在于数据库中,所以这时候不能采取重装系统的方式更改表结构或者更改数据库等操作,这时候就得借助 upgrade.php平滑升级。

后台 API

1. externallib.php

负责编写service.phpajax提交方法对应的后台方法,并调用lib.php中的API实现;

2. lib.php

负责方法的具体实现,代码与数据库的数据交互

3. lang/en/xxx.php 和 lang/zh_cn/xxx.php

en目录下的表示英文翻译语言文件,zh_cn目录下的表示中文翻译语言文件,具体调用方法为:

  • php中: get_string(字符串名, 插件名)

  • mustache中: {

    {#str}}字符串名, 插件名{
    {/str}}

作者:Tony

2017年02月28日

转载地址:http://xpffk.baihongyu.com/

你可能感兴趣的文章
NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
Nim教程【十二】
查看>>
Nim游戏
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO_通道之间传输数据
查看>>
NIO三大组件基础知识
查看>>
NIO与零拷贝和AIO
查看>>
NIO同步网络编程
查看>>
NIO基于UDP协议的网络编程
查看>>
NIO笔记---上
查看>>
Vue3.0中的响应式原理(第九课)
查看>>
NIO蔚来 面试——IP地址你了解多少?
查看>>
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
NISP国家信息安全水平考试,收藏这一篇就够了
查看>>
NIS服务器的配置过程
查看>>
NIS认证管理域中的用户
查看>>