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