摘要:插件講解插件在中相比于其他插件算是比較容易上手的一個(gè)插件,插件中前后臺(tái)分離,不用遨游在雜糅前后端的代碼里。學(xué)會(huì)插件是上手其他插件的前提,其實(shí)一旦學(xué)會(huì)插件也會(huì)發(fā)現(xiàn)其他插件不過是它的一種變種形式罷了,只要舉一反三就能很快掌握。
Moodle Local 插件講解
Local插件在Moodle中相比于其他插件算是比較容易上手的一個(gè)插件,Local插件中前后臺(tái)分離,不用遨游在雜糅前后端的代碼里。學(xué)會(huì)Local插件是上手其他插件的前提,其實(shí)一旦學(xué)會(huì)Local插件也會(huì)發(fā)現(xiàn)其他插件不過是它的一種變種形式罷了,只要舉一反三就能很快掌握。
流程圖 前端 Template服務(wù)器配置了相應(yīng)的url,所以每個(gè)插件的加載首頁都是index.php,但是并不意味著頁面的代碼就在 index.php中,首先在index.php中調(diào)用renderer.php中相應(yīng)的頁面渲染方法,例如 render_index_page($page)方法:
public function render_index_page($page) { $data = $page->export_for_template($this); render_from_template("local_xxx/index", $data) }
在這個(gè)方法中,首先調(diào)用了index_page這個(gè)類中的export_for_template方法,獲得頁面靜態(tài)加載需要的數(shù)據(jù),例如mustache模板需要的數(shù)據(jù)data數(shù)組的索引與模板名稱一一對(duì)應(yīng),例如mustache文件中若有 {{#user}} hello !{{/user}},那么對(duì)應(yīng)class一定存在$data["user"] = xxxx;
以render_from_template("local_xxx/index", $data) 為例,local_xxx/index,template目錄下必定有文件名為index.mustache的文件,這是moodle封裝好的命名規(guī)范,而mustache文件就是頁面展示的代碼所在了;
通過{{#js}} require xxx {{/js}} 引入對(duì)應(yīng)的JavaScript文件;
CSS每個(gè)local插件中都存在一個(gè)style.css這樣的一個(gè)css樣式文件,系統(tǒng)運(yùn)行時(shí),會(huì)將每個(gè)模塊的css文件內(nèi)容合并到一起,所以如果有兩個(gè)名稱一樣的css,則會(huì)發(fā)生覆蓋的現(xiàn)象,所以建議起名字統(tǒng)一在最前面加上當(dāng)前的插件名稱,要注意的是,每次新增、修改或者刪除css文件內(nèi)容后,如若需要立即查看效果,必要以admin角色進(jìn)入系統(tǒng),然后清空緩存;
JavaScript目前系統(tǒng)中的js是基于RequireJS框架,遵循AMD開發(fā)規(guī)范,利用Grunt構(gòu)建的。amd目錄下有src目錄和build目錄,src下的xxx.js是供開發(fā)時(shí)編寫調(diào)試使用,而build目錄下的min.js則是網(wǎng)站實(shí)際運(yùn)行時(shí)所使用的js文件,經(jīng)過壓縮可以大幅度提升運(yùn)行速度。所以每次修改js完畢后,提交代碼切勿忘記生成對(duì)應(yīng)的 min.js文件并提供,生成命令為grunt uglify;
后端 db 1. access.php主要負(fù)責(zé)記錄權(quán)限的配置;
2. service.php負(fù)責(zé)接收 ajax 提交,配置對(duì)應(yīng)的后臺(tái) API 的類名、路徑 和方法名等信息,并將對(duì)應(yīng)的ajax方法存入數(shù)據(jù)庫(kù)中;
3. install.xml用于安裝系統(tǒng)時(shí)表結(jié)構(gòu)的對(duì)應(yīng)生成;
4. install.php用于安裝系統(tǒng)時(shí)數(shù)據(jù)庫(kù)的缺省數(shù)據(jù)的提供;
5. upgrade.php 開發(fā)規(guī)范用于系統(tǒng)表結(jié)構(gòu)變化等版本升級(jí)事項(xiàng)的實(shí)現(xiàn),由于生產(chǎn)環(huán)境中客戶已有大量數(shù)據(jù)存在于數(shù)據(jù)庫(kù)中,所以這時(shí)候不能采取重裝系統(tǒng)的方式更改表結(jié)構(gòu)或者更改數(shù)據(jù)庫(kù)等操作,這時(shí)候就得借助 upgrade.php平滑升級(jí)。
后臺(tái) API 1. externallib.php負(fù)責(zé)編寫service.php中ajax提交方法對(duì)應(yīng)的后臺(tái)方法,并調(diào)用lib.php中的API實(shí)現(xiàn);
2. lib.php負(fù)責(zé)方法的具體實(shí)現(xiàn),代碼與數(shù)據(jù)庫(kù)的數(shù)據(jù)交互
3. lang/en/xxx.php 和 lang/zh_cn/xxx.phpen目錄下的表示英文翻譯語言文件,zh_cn目錄下的表示中文翻譯語言文件,具體調(diào)用方法為:
php中: get_string(字符串名, 插件名)
mustache中: {{#str}}字符串名, 插件名{{/str}}
作者:Tony
2017年02月28日
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/23124.html
摘要:?jiǎn)栴}描述由于某些原因,不能讓用戶進(jìn)行注冊(cè),只能有運(yùn)營(yíng)人員手動(dòng)添加用戶,單個(gè)添加用戶比較麻煩,因此選擇使用上傳文件的形式來批量生成用戶,但是上傳用戶在不給定字段時(shí),應(yīng)該生成密碼并通知用戶,但是最終結(jié)果是生成用戶成功了,郵件并沒有發(fā)出郵件服務(wù)器 問題描述 由于某些原因,不能讓用戶進(jìn)行注冊(cè),只能有運(yùn)營(yíng)人員手動(dòng)添加用戶,單個(gè)添加用戶比較麻煩,因此選擇使用上傳文件的形式來批量生成用戶,但是上傳用...
摘要:什么是開源的輕量級(jí)性能分析工具。它報(bào)告函數(shù)級(jí)別的請(qǐng)求次數(shù)和各種指標(biāo),包括阻塞時(shí)間,時(shí)間和內(nèi)存使用情況?;跒g覽器的性能分析用戶界面能更容易查看,或是與同行們分享成果。對(duì)于本地開發(fā)環(huán)境來說,進(jìn)行性能分析是夠用了。 什么是 XHPROF? XHPROF:Facebook 開源的輕量級(jí)PHP性能分析工具。 它報(bào)告函數(shù)級(jí)別的請(qǐng)求次數(shù)和各種指標(biāo),包括阻塞時(shí)間,CPU時(shí)間和內(nèi)存使用情況。 XHPr...
摘要:擴(kuò)展應(yīng)用模塊功能介紹擴(kuò)展應(yīng)用由很多部分組成,其中主要模塊為為了避免由于翻譯原因?qū)е碌膯栴},因此在下文中對(duì)相關(guān)模塊的稱呼一律采用上面的英文。附錄官方開發(fā)文檔英建議有英文閱讀能力的人閱讀此文檔。 概述 本文通過對(duì)chrome插件的各個(gè)部分進(jìn)行快速的介紹,從而讓大家了解插件各個(gè)部分的關(guān)系,并且知道如何將其進(jìn)行組裝成一個(gè)完整的chrome插件。 由于chrome官方文檔中對(duì)于如何從零開發(fā)一個(gè)c...
摘要:在將臭未臭之前,我們趕緊把其中的統(tǒng)一認(rèn)證這塊過一下。的歷史前面說了是耶魯大學(xué)實(shí)驗(yàn)室的在年出的一個(gè)開源系統(tǒng)。這次我們先看看官網(wǎng)出的一幅圖,這張圖片介紹了的組成以及支持的各種協(xié)議,各種特性,不煩看看 為什么要做這個(gè)嘗試? 微服之道,方興未艾;農(nóng)之來學(xué)者,蓋已千者! 這句是從《陶山集·太學(xué)案問》瞎改出來的。意思就是微服務(wù)的架構(gòu)理念還在不斷地發(fā)展,現(xiàn)在整個(gè)啥都 言必出微服務(wù),差點(diǎn)都到了 沒學(xué)...
閱讀 2138·2021-11-23 09:51
閱讀 3715·2021-10-20 13:49
閱讀 1722·2021-09-06 15:13
閱讀 1834·2021-09-06 15:02
閱讀 3189·2021-09-02 15:11
閱讀 903·2019-08-29 15:37
閱讀 1748·2019-08-29 13:24
閱讀 2288·2019-08-29 11:28