Moodle Local 插件講解

Moodle Local 插件講解


Local插件在Moodle中相比於其餘插件算是比較容易上手的一個插件,Local插件中先後臺分離,不用遨遊在雜糅先後端的代碼裏。學會Local插件是上手其餘插件的前提,其實一旦學會Local插件也會發現其餘插件不過是它的一種變種形式罷了,只要觸類旁通就能很快掌握。php

流程圖

image

前端

Template

服務器配置了相應的url,因此每一個插件的加載首頁都是index.php,可是並不意味着頁面的代碼就在 index.php中,首先在index.php中調用renderer.php中相應的頁面渲染方法,例如 render_index_page($page)方法:css

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文件就是頁面展現的代碼所在了;ajax

  • 經過{{#js}} require xxx {{/js}} 引入對應的JavaScript文件;數據庫

CSS

每一個local插件中都存在一個style.css這樣的一個css樣式文件,系統運行時,會將每一個模塊的css文件內容合併到一塊兒,因此若是有兩個名稱同樣的css,則會發生覆蓋的現象,因此建議起名字統一在最前面加上當前的插件名稱,要注意的是,每次新增、修改或者刪除css文件內容後,如若須要當即查看效果,必要以admin角色進入系統,而後清空緩存後端

JavaScript

目前系統中的js是基於RequireJS框架,遵循AMD開發規範,利用Grunt構建的。amd目錄下有src目錄和build目錄,src下的xxx.js是供開發時編寫調試使用,而build目錄下的min.js則是網站實際運行時所使用的js文件,通過壓縮能夠大幅度提高運行速度。因此每次修改js完畢後,提交代碼切勿忘記生成對應的 min.js文件並提供,生成命令爲grunt uglify數組

後端

db

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日

相關文章
相關標籤/搜索