何鳴皋++尤偉光
摘 要:Drupal是一個(gè)用PHP語言開發(fā)的、在互聯(lián)網(wǎng)上被眾多網(wǎng)站所采用的CMS(Content Management System),而且Drupal除包含CMS的基本功能外,還擁有眾多可定制的功能模塊和一套完整的API,非常適合用于E-learning平臺的構(gòu)建和二次開發(fā)。對于學(xué)校而言,基于Drupal構(gòu)建E-learning平臺有許多優(yōu)勢,學(xué)??梢愿鶕?jù)自身需求選擇一套適合E-learning應(yīng)用的Drupal模塊組合,還可以結(jié)合實(shí)際需求使用Drupal API高效率地定制開發(fā)E-learning功能模塊。
關(guān)鍵詞:E-learning;網(wǎng)絡(luò)教學(xué)平臺;開發(fā);Drupal
中圖分類號:TP311 文獻(xiàn)標(biāo)志碼:A 文章編號:1673-8454(2014)07-0063-05
一、E-learning的平臺建設(shè)和開發(fā)現(xiàn)狀
目前學(xué)校部署E-learning平臺一般有以下幾種常見模式,這幾種模式均有各自的優(yōu)勢,但也存在各自的問題。
1.購買商業(yè)版的網(wǎng)絡(luò)教學(xué)平臺
流行的商業(yè)E-learning平臺有Blackboard[1]等。購買商業(yè)版的網(wǎng)絡(luò)教學(xué)平臺,可以讓學(xué)??焖佾@取和使用網(wǎng)絡(luò)教學(xué)平臺,縮短學(xué)校構(gòu)建E-learning平臺和投入應(yīng)用的周期,并享受軟件供應(yīng)商的相關(guān)服務(wù)。
但是隨著教學(xué)應(yīng)用的不斷深入,如果需要對現(xiàn)有功能進(jìn)行調(diào)整和改進(jìn),就存在無法對商業(yè)軟件直接進(jìn)行修改的問題,即使軟件供應(yīng)商能夠提供修改服務(wù),其響應(yīng)時(shí)間往往較長,而且商業(yè)軟件高昂的采購費(fèi)用和升級維護(hù)費(fèi)用也是學(xué)校沉重的財(cái)務(wù)負(fù)擔(dān)。
2.采用開源的網(wǎng)絡(luò)教學(xué)平臺
目前流行的開源E-learning平臺有Moodle和Sakai[2]等,采用成熟的開源網(wǎng)絡(luò)教學(xué)平臺,雖然部署的技術(shù)門檻比采購商業(yè)軟件要高,但為學(xué)校節(jié)省了大量的經(jīng)費(fèi)開支,還能夠與開源社區(qū)和其它采用該平臺的學(xué)校共享資源和經(jīng)驗(yàn)。
但是,學(xué)校無論引進(jìn)哪一個(gè)網(wǎng)絡(luò)教學(xué)平臺,實(shí)質(zhì)都是引入了該平臺已經(jīng)定型的教學(xué)設(shè)計(jì)和應(yīng)用流程,很可能與學(xué)校自身的實(shí)際情況和應(yīng)用需求存在偏差,導(dǎo)致在進(jìn)行應(yīng)用培訓(xùn)和投入實(shí)際教學(xué)的過程中難以被教師和學(xué)生接受,而且還可能會增加無謂的培訓(xùn)和系統(tǒng)管理工作量,最終反而降低了教學(xué)效率和管理效率,甚至造成學(xué)校的網(wǎng)絡(luò)教學(xué)應(yīng)用半途而廢。
3.自主開發(fā)網(wǎng)絡(luò)教學(xué)平臺
自主開發(fā)E-learning平臺,可以讓學(xué)校完全根據(jù)自身情況設(shè)計(jì)和開發(fā)滿足自身需求的網(wǎng)絡(luò)教學(xué)系統(tǒng),然而由于E-learning系統(tǒng)的復(fù)雜性,從零開始開發(fā)一套E-learning平臺會耗費(fèi)大量的人力和時(shí)間,在技術(shù)人員人力十分有限的學(xué)校難以實(shí)施。
4.外包開發(fā)網(wǎng)絡(luò)教學(xué)平臺
學(xué)校根據(jù)自身需求設(shè)計(jì)E-learning功能,交由專業(yè)的軟件開發(fā)公司進(jìn)行平臺開發(fā),從而實(shí)現(xiàn)按需定制開發(fā),比直接購買成套的E-learning平臺更加切合學(xué)校的實(shí)際需求,并且學(xué)校也無需投入開發(fā)人力。
但是外包定制開發(fā)需要學(xué)校與軟件開發(fā)公司長期合作,也需要學(xué)校長期投入大量的資金。另外學(xué)校與外包公司開發(fā)人員的溝通成本也不可忽視,缺乏有效的溝通會導(dǎo)致外包公司開發(fā)的產(chǎn)品不能完全滿足學(xué)校的需要,而且外包公司的響應(yīng)速度也會決定E-learning在應(yīng)用過程中出現(xiàn)的問題是否得到及時(shí)的處理。
5.基于開源平臺二次開發(fā)
由于學(xué)校的開發(fā)人力有限,因此基于Moodle和Sakai等開源E-learning平臺進(jìn)行二次開發(fā)是較為可行的方案,可以讓學(xué)校充分利用開源E-learning平臺的現(xiàn)成功能,大幅度縮短E-learning平臺部署和投入應(yīng)用的周期,還可以讓有開發(fā)能力的學(xué)校根據(jù)自身需求對開源E-learning平臺進(jìn)行修改和二次開發(fā)。然而由于開源E-learning平臺的基礎(chǔ)架構(gòu)已經(jīng)定型,二次開發(fā)大多只局限于功能微調(diào)或是開發(fā)附加的功能模塊,很難改動(dòng)平臺的主體設(shè)計(jì)和現(xiàn)有流程結(jié)構(gòu)。[3]此外,開源E-learning平臺是在不斷更新和升級的,在某一版本上深入進(jìn)行修改和長時(shí)間使用,將使二次開發(fā)的版本成為該平臺的一個(gè)分支(branch),從而難以再獲取官方版本的更新和升級。
綜上所述,學(xué)校要進(jìn)行網(wǎng)絡(luò)教學(xué)深入應(yīng)用的最佳方案是根據(jù)學(xué)校自身情況分析教學(xué)和管理需求,設(shè)計(jì)符合實(shí)際情況和滿足實(shí)際需求的網(wǎng)絡(luò)教學(xué)流程和功能,定制開發(fā)E-learning平臺。特別是“面對信息超載和知識碎片化兩大挑戰(zhàn),新建構(gòu)主義認(rèn)為知識體系是由感性認(rèn)識、理性認(rèn)識和聯(lián)想三者構(gòu)成的一個(gè)類似榕樹的結(jié)構(gòu)。教育是一個(gè)知識‘嫁接過程,學(xué)會‘自嫁接是網(wǎng)絡(luò)時(shí)代學(xué)習(xí)者的首要任務(wù)”。[4]然而對于學(xué)校而言,要實(shí)現(xiàn)“按需定制開發(fā)E-learning平臺”這一目的,需要綜合考慮資金、開發(fā)人力、開發(fā)周期、功能需求以及開發(fā)的可持續(xù)性等諸多因素,條件不同的學(xué)校需要根據(jù)自身情況對這些因素進(jìn)行平衡和決策。因此,很有必要找到一種普遍適合于有一定開發(fā)能力的學(xué)校的折中開發(fā)方案,使學(xué)校既能根據(jù)自身需求定制開發(fā)E-learning平臺,又能最大限度地減少資金和開發(fā)人員投入,從而實(shí)現(xiàn)高效率和可控的自主開發(fā)。
二、Drupal適宜E-learning開發(fā)的原因分析
Drupal[5]是一個(gè)用PHP語言開發(fā)的,在互聯(lián)網(wǎng)上被眾多網(wǎng)站所采用的CMS(Content Management System)[6]。開源的Drupal平臺包含功能強(qiáng)大的CMS核心組件,并且已有一些現(xiàn)成的E-learning相關(guān)模塊,更重要的是Drupal還提供了一整套用于開發(fā)Web應(yīng)用的API(Application Programming Interface),因此基于Drupal進(jìn)行網(wǎng)絡(luò)教學(xué)平臺構(gòu)建和開發(fā),適合有一定自主開發(fā)能力,并希望能夠按本校實(shí)際需求定制開發(fā)的學(xué)校。作為沒有條件或不想過多投入開發(fā)人力的學(xué)校,也可以利用Drupal的基礎(chǔ)架構(gòu)和現(xiàn)有的E-learning相關(guān)模塊,快速構(gòu)建一個(gè)E-learning平臺。
總體而言,基于Drupal的網(wǎng)絡(luò)教學(xué)平臺具有以下優(yōu)勢和特點(diǎn):
1.成熟穩(wěn)定的CMS架構(gòu)
Drupal的基礎(chǔ)組件包含了構(gòu)成CMS的所有核心功能,如用戶管理、角色權(quán)限、內(nèi)容節(jié)點(diǎn)(node)發(fā)布等等,這些核心組件同樣是構(gòu)成E-learning平臺的基礎(chǔ)。
2.豐富的功能模塊
Drupal的擴(kuò)展模塊(module)種類繁多,包括博客、電子商務(wù)、即時(shí)通訊、視頻媒體、E-learning等等,用戶可以根據(jù)自己的應(yīng)用需求選擇其中的模塊進(jìn)行自由組合和定制,從而獲得一套滿足自身需求的CMS。[7]
3.開源平臺
Drupal是用GNU GPL協(xié)議發(fā)布的自由軟件,同其它開源的E-learning平臺一樣,用戶可以獲得其完整的源代碼并進(jìn)行二次開發(fā)。[8]
4.按需定制開發(fā)
學(xué)校在應(yīng)用成套的E-learning平臺過程中,往往會遇到以下兩個(gè)問題:
(1)功能需求問題
系統(tǒng)中的功能不能滿足需求,需要在平臺框架內(nèi)開發(fā)新的功能模塊。這種情況只要了解開源平臺的結(jié)構(gòu)和模塊實(shí)現(xiàn),并擁有開發(fā)能力,就可以在原系統(tǒng)上進(jìn)行二次開發(fā)。
(2)教學(xué)流程問題
現(xiàn)有E-learning平臺的應(yīng)用流程或整體架構(gòu)與學(xué)校實(shí)際情況和需求差距較大,需要對系統(tǒng)主體結(jié)構(gòu)進(jìn)行大的調(diào)整和修改。 由于E-learning系統(tǒng)不同于網(wǎng)站、博客、資源平臺等通用性較強(qiáng)的CMS系統(tǒng),而是更接近于MIS(management information system),與實(shí)際應(yīng)用需求高度相關(guān),因此,使用Drupal API進(jìn)行E-learning的應(yīng)用開發(fā),可以讓學(xué)校對于開源平臺的二次開發(fā)不再局限于修改和打補(bǔ)丁,而是能夠根據(jù)自身需求設(shè)計(jì)并實(shí)現(xiàn)完整的功能流程。
endprint
5.快速開發(fā)
基于Drupal進(jìn)行E-learning開發(fā)的高效性體現(xiàn)在三個(gè)方面:
(1)Drupal API
Drupal是一套面向?qū)ο螅∣O)的WebAPI,Drupal本身的核心組件和模塊都是使用Drupal API開發(fā)而來。Drupal API的意義在于:
1)函數(shù)封裝
Drupal API封裝了PHP語言對數(shù)據(jù)庫、文件、圖片等數(shù)據(jù)的底層操作,提高了開發(fā)效率,并且避免了開發(fā)者自己實(shí)現(xiàn)底層操作可能造成的安全漏洞。
2)內(nèi)部數(shù)據(jù)
Drupal API能夠快速調(diào)用Drupal系統(tǒng)內(nèi)部全局變量和用戶數(shù)據(jù),與手工進(jìn)行SQL查詢相比,大幅度提高了開發(fā)效率。
3)權(quán)限掛鉤
通過Drupal API的權(quán)限掛鉤(hook)將模塊開發(fā)限制在Drupal的用戶權(quán)限框架內(nèi),開發(fā)者不用自己實(shí)現(xiàn)權(quán)限控制,從而提高功能模塊的安全性。
4)界面主題接口
提供了完整的界面主題(theme)接口,將模塊業(yè)務(wù)與界面分離,使開發(fā)者可以快速開發(fā)出與系統(tǒng)界面風(fēng)格完全一致的模塊。
(2)模塊調(diào)用
Drupal可以在模塊中靈活調(diào)用其它模塊已經(jīng)實(shí)現(xiàn)的功能。模塊的相互調(diào)用最大限度地避免了重復(fù)開發(fā),提高了開發(fā)效率。
(3)模塊開源
Drupal的模塊也是開源的,可以參照與所需功能基礎(chǔ)結(jié)構(gòu)相近的模塊進(jìn)行二次開發(fā),也可以直接對模塊進(jìn)行修改。
6.模板和展示
通過Drupal的站點(diǎn)(Sites)功能,教師可以靈活地進(jìn)行模板和主題定制,將自己的網(wǎng)絡(luò)課程整體對外展示,適用于精品課程網(wǎng)站、開放課程、教學(xué)成果評比等。
三、基于Drupal的E-learning平臺的體系結(jié)構(gòu)(見圖1)
1.操作系統(tǒng)
Drupal需要PHP運(yùn)行環(huán)境和MySQL數(shù)據(jù)庫,可以使用Apache、nginx等httpd服務(wù),因此可以在Windows操作系統(tǒng)中運(yùn)行,但首選的運(yùn)行環(huán)境應(yīng)該是原生的LAMP(Linux+Apache+MySQL+PHP)環(huán)境。在后臺數(shù)據(jù)處理中可以使用Linux中的Perl語言及其DBI(Database Interface)數(shù)據(jù)庫接口模塊編寫腳本,直接操作數(shù)據(jù)庫中的數(shù)據(jù),從而大幅度提高E-learning平臺的開發(fā)和維護(hù)管理效率。
2.基礎(chǔ)的CMS平臺
Drupal的核心組件包含了構(gòu)建一套CMS的所必需的基礎(chǔ)元素,直接基于這些核心組件開發(fā)E-learning應(yīng)用模塊,可以避免重復(fù)勞動(dòng),提高開發(fā)效率。
(1)用戶(user)
提供了可定制的用戶個(gè)人信息的字段,例如E-learning平臺中必要的學(xué)生姓名、性別、學(xué)號、學(xué)院、專業(yè)、年級、培養(yǎng)層次等個(gè)人信息字段都可以直接定義,不需要開發(fā)者自己實(shí)現(xiàn)。
(2)角色(role)
實(shí)現(xiàn)角色群組劃分以及不同角色對模塊的訪問權(quán)限,例如學(xué)生、教師、教研室主任、系統(tǒng)管理員等角色。
(3)內(nèi)容節(jié)點(diǎn)(node)
在Drupal中,核心組件已經(jīng)包括了內(nèi)容發(fā)布功能,而且用戶發(fā)布的所有內(nèi)容都以節(jié)點(diǎn)(node)的形式保存,通過Drupal的大綱(book)模塊,節(jié)點(diǎn)可以與其它節(jié)點(diǎn)以大綱的形式關(guān)聯(lián),成為其它節(jié)點(diǎn)的子節(jié)點(diǎn)或父節(jié)點(diǎn)。
3.面向E-learning應(yīng)用的模塊組合
Drupal現(xiàn)有的一些功能模塊可以直接用于組建E-learning系統(tǒng)以及學(xué)習(xí)社區(qū),模塊的靈活應(yīng)用和組合可以避免類似功能的重復(fù)開發(fā)。
(1)評論(comment)
評論模塊可以讓用戶對node中的內(nèi)容發(fā)表評論,從而實(shí)現(xiàn)了最基本的交互討論。
(2)搜索(search)
搜索模塊讓用戶搜索現(xiàn)有的所有節(jié)點(diǎn)內(nèi)容,實(shí)現(xiàn)對E-learning平臺的資源檢索。
(3)測驗(yàn)(quiz)
測驗(yàn)?zāi)K是一個(gè)功能完整的在線測試和問答模塊,可以讓教師創(chuàng)建課程練習(xí)或考試,試題可以是單選、多選、判斷、問答等多種題型,并且提供學(xué)生答題情況和成績的統(tǒng)計(jì)報(bào)表。
(4)投票(poll)
投票模塊可以讓教師發(fā)起一個(gè)問卷,收集學(xué)生對某一問題的看法。
(5)論壇(forum)
論壇模塊可以讓教師建立課程或主題的論壇,構(gòu)建網(wǎng)上學(xué)習(xí)社區(qū)。
(6)博客(blog)
博客模塊可以讓教師建立自己的個(gè)人博客,學(xué)生可以通過評論博客文章與教師及其他學(xué)生交互。[9]
(7)站內(nèi)短信(privatemsg)
短信模塊可以實(shí)現(xiàn)師生以及生生間的點(diǎn)對點(diǎn)信息交互。
(8)實(shí)時(shí)聊天(drupalchat)
實(shí)時(shí)聊天模塊提供了Drupal系統(tǒng)內(nèi)的即時(shí)信息(IM)交互功能,教師和學(xué)生在線時(shí)可以進(jìn)行在線答疑和交流。
(9)文件上傳(upload)
上傳模塊提供了穩(wěn)定、統(tǒng)一的文件上傳接口,可以嵌入到節(jié)點(diǎn)發(fā)布的表單內(nèi),實(shí)現(xiàn)教師的課件或資料上傳以及學(xué)生的作業(yè)提交。
(10)大綱(book)
大綱模塊可以將E-learning平臺內(nèi)的所有節(jié)點(diǎn)用樹狀的大綱串聯(lián)起來,網(wǎng)絡(luò)課程內(nèi)容可以按教科書的章節(jié)層層建立,與課程相關(guān)的教輔資料、練習(xí)、討論等內(nèi)容也能夠關(guān)聯(lián)到課程節(jié)點(diǎn)中,使網(wǎng)絡(luò)課程層次清晰,便于導(dǎo)航和訪問。
(11)所見即所得編輯器(wysiwyg imagefield)
所見即所得編輯器讓教師能夠?qū)D片或Microsoft Word文件等帶有格式的內(nèi)容粘貼到E-learning系統(tǒng)中,便于在線創(chuàng)建和編輯課程內(nèi)容。
(12)在線課程(course)
在線課程模塊是專門為教師發(fā)布課程內(nèi)容而設(shè)計(jì)開發(fā)的模塊集合,直接能夠用于網(wǎng)絡(luò)課程的發(fā)布。
(13)媒體資源(media)
媒體資源模塊是一個(gè)基于樹狀目錄的資源庫,教師和學(xué)生可以共同分門別類地創(chuàng)建資源目錄并上傳多媒體資源,例如音頻、視頻、課件、參考資料等等。
四、使用Drupal API進(jìn)行E-learning應(yīng)用開發(fā)
采用Drupal API[10]進(jìn)行模塊開發(fā)比直接用PHP語言的底層函數(shù)進(jìn)行開發(fā)效率要高得多,因?yàn)镈rupal API已經(jīng)封裝了數(shù)據(jù)庫讀寫、表單提交、查詢搜索、數(shù)據(jù)表格、數(shù)據(jù)分頁、權(quán)限控制、界面格式化等幾乎所有組成Web應(yīng)用的要素。
1.E-learning開發(fā)中常用的Drupal API(見表1)
(1)表單(form)API
表單API封裝了text,checkbox,radiobox,textarea等表單元素,可以讓開發(fā)者快速構(gòu)建一個(gè)復(fù)雜的復(fù)合表單。
(2)數(shù)據(jù)庫(db)API
數(shù)據(jù)庫(db)API是Drupal API中最關(guān)鍵的接口之一,它封裝了PHP的數(shù)據(jù)庫操作函數(shù),當(dāng)前(Drupal 7)的DatabaseCondition API進(jìn)一步封裝了SQL語句,開發(fā)者只需指定所要操作的字段和相關(guān)數(shù)據(jù)就能對數(shù)據(jù)表進(jìn)行讀寫操作,極大地提高了開發(fā)效率。
(3)權(quán)限掛鉤(hook_permission)
權(quán)限掛鉤可供開發(fā)者定義模塊的多種權(quán)限,例如訪問、修改、管理等,這些權(quán)限又可以賦予不同的用戶角色,從而能夠構(gòu)建多層次的E-learning系統(tǒng)結(jié)構(gòu)。例如在線考試的試題庫,普通教師擁有試題錄入的權(quán)限,教研室主任擁有試題審核的權(quán)限等。
(4)全局變量(global)API
提供了快速調(diào)用系統(tǒng)內(nèi)部數(shù)據(jù),例如用戶個(gè)人信息字段的接口,開發(fā)效率遠(yuǎn)高于手工編寫查詢數(shù)據(jù)庫表的代碼。
(5)分頁(pager)
分頁在Web界面開發(fā)中是一個(gè)繁雜的問題,需要將一個(gè)數(shù)據(jù)表中的所有數(shù)據(jù)以行列表格顯示,并自動(dòng)分成若干頁,而且要有頁碼和導(dǎo)航條。Drupal的Pager API可以快速實(shí)現(xiàn)這一功能,開發(fā)者所要做的只是設(shè)定每頁顯示的記錄數(shù)而已。
endprint
(6)界面主題(theme)API
提供了系統(tǒng)內(nèi)所有數(shù)據(jù)的格式化顯示,使模塊的界面完全無縫嵌入到E-learning網(wǎng)站的總體界面風(fēng)格之中。
2.通用的Drupal模塊開發(fā)流程
(1)確定模塊名稱
在modules目錄下創(chuàng)建模塊目錄和文件,例如results_table。模塊名稱既是API hook的前綴,也是數(shù)據(jù)庫中相關(guān)表的名稱或前綴。
(2)實(shí)現(xiàn)hook_help()
主要是模塊的文字描述,使模塊出現(xiàn)在Drupal的模塊管理器中。
(3)實(shí)現(xiàn)hook_permission()
定義了模塊的顯示、編輯、管理等權(quán)限,之后可以在Drupal的權(quán)限管理界面中設(shè)置哪些用戶群組(角色)擁有哪些權(quán)限。
(4)實(shí)現(xiàn)hook_menu()
使模塊出現(xiàn)在Drupal的導(dǎo)航菜單中,也就是指定進(jìn)入模塊的入口鏈接,以及入口的回調(diào)函數(shù)(即主界面)。
(5)編寫主界面函數(shù)
首先指定所要顯示的數(shù)據(jù)表的列名和對結(jié)果進(jìn)行排序的列,并構(gòu)建查詢對象,然后在執(zhí)行查詢時(shí)指定表格每頁顯示的行數(shù)。最后將查詢結(jié)果保存到行數(shù)組中,并顯示結(jié)果和分頁。
(6)啟用模塊
在Drupal的模塊管理器中啟用模塊。
可以看出,Drupal API采用了簡潔的面向?qū)ο缶幊蹋∣OP)的架構(gòu),僅需很少的代碼就實(shí)現(xiàn)了Web應(yīng)用開發(fā)中必需的數(shù)據(jù)庫查詢、分頁、表格、導(dǎo)航等操作和界面元素,有效提高了開發(fā)效率。
五、結(jié)語
使用基于Drupal的E-learning系統(tǒng),可以讓學(xué)校在單純的E-learning應(yīng)用和復(fù)雜的二次開發(fā)之間找到一種折中方案。這種模式特別有利于E-learning環(huán)境中構(gòu)建教師應(yīng)用技術(shù)解決教學(xué)問題的知識平臺的形成,因?yàn)椤斑@種知識將要解決的問題 (即信息技術(shù)整合于學(xué)科教學(xué)過程所遇到的問題),都屬于沒有確定的解決方案的‘劣性問題(Wicked Problem)——它們的解決方案只能依賴于每位教師的認(rèn)知靈活性且在三種知識的結(jié)合與交叉中去尋找”。[11]因此,基于Drupal的E-learning平臺的開發(fā)和應(yīng)用前景十分廣闊。
參考文獻(xiàn):
[1]張漢玉, 穆肅,任友群.學(xué)習(xí)管理系統(tǒng)的社會性交互功能比較——基于對Blackboard、Moodle、Sakai的調(diào)查與使用體驗(yàn)[J].現(xiàn)代遠(yuǎn)程教育研究,2013(2):38-44.
[2]翟菁.SAKAI與MOODLE的比較研究[J].軟件導(dǎo)刊,2008(9):33-34.
[3]葉海松.Moodle的二次開發(fā)與設(shè)計(jì)[J].電化教育研究,2007(4):50-55.
[4]宋述強(qiáng),鐘曉流,李海霞,焦麗珍,李婷,白薇琳.教育信息化的實(shí)踐趨勢、理論動(dòng)態(tài)與技術(shù)前沿——兼論《現(xiàn)代教育技術(shù)》雜志2013年選題策劃[J].現(xiàn)代教育技術(shù),2013(1):5-8.
[5]About Drupal[EB/OL].https://drupal.org/about.
[6]盛安元,黃存東,張前進(jìn).基于開源軟件Drupal工程實(shí)踐[J].武漢工業(yè)學(xué)院學(xué)報(bào), 2012(2):65-67.
[7]孫方.基于Drupal電子學(xué)檔平臺設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代教育技術(shù),2012(1):98-102.
[8]GNU General Public License [EB/OL]. http://www.gnu.org/licenses/gpl.html.
[9]郭玲.基于Drupal構(gòu)建精品課程網(wǎng)站的實(shí)踐與探討[J].硅谷,2011(16):139.
[10]API reference[EB/OL].https://api.drupal.org/api/drupal.
[11]何克抗.TPACK——美國“信息技術(shù)與課程整合”途徑與方法研究的新發(fā)展(下)[J].電化教育研究,2012(6):47-56.
(編輯:王天鵬)
endprint
(6)界面主題(theme)API
提供了系統(tǒng)內(nèi)所有數(shù)據(jù)的格式化顯示,使模塊的界面完全無縫嵌入到E-learning網(wǎng)站的總體界面風(fēng)格之中。
2.通用的Drupal模塊開發(fā)流程
(1)確定模塊名稱
在modules目錄下創(chuàng)建模塊目錄和文件,例如results_table。模塊名稱既是API hook的前綴,也是數(shù)據(jù)庫中相關(guān)表的名稱或前綴。
(2)實(shí)現(xiàn)hook_help()
主要是模塊的文字描述,使模塊出現(xiàn)在Drupal的模塊管理器中。
(3)實(shí)現(xiàn)hook_permission()
定義了模塊的顯示、編輯、管理等權(quán)限,之后可以在Drupal的權(quán)限管理界面中設(shè)置哪些用戶群組(角色)擁有哪些權(quán)限。
(4)實(shí)現(xiàn)hook_menu()
使模塊出現(xiàn)在Drupal的導(dǎo)航菜單中,也就是指定進(jìn)入模塊的入口鏈接,以及入口的回調(diào)函數(shù)(即主界面)。
(5)編寫主界面函數(shù)
首先指定所要顯示的數(shù)據(jù)表的列名和對結(jié)果進(jìn)行排序的列,并構(gòu)建查詢對象,然后在執(zhí)行查詢時(shí)指定表格每頁顯示的行數(shù)。最后將查詢結(jié)果保存到行數(shù)組中,并顯示結(jié)果和分頁。
(6)啟用模塊
在Drupal的模塊管理器中啟用模塊。
可以看出,Drupal API采用了簡潔的面向?qū)ο缶幊蹋∣OP)的架構(gòu),僅需很少的代碼就實(shí)現(xiàn)了Web應(yīng)用開發(fā)中必需的數(shù)據(jù)庫查詢、分頁、表格、導(dǎo)航等操作和界面元素,有效提高了開發(fā)效率。
五、結(jié)語
使用基于Drupal的E-learning系統(tǒng),可以讓學(xué)校在單純的E-learning應(yīng)用和復(fù)雜的二次開發(fā)之間找到一種折中方案。這種模式特別有利于E-learning環(huán)境中構(gòu)建教師應(yīng)用技術(shù)解決教學(xué)問題的知識平臺的形成,因?yàn)椤斑@種知識將要解決的問題 (即信息技術(shù)整合于學(xué)科教學(xué)過程所遇到的問題),都屬于沒有確定的解決方案的‘劣性問題(Wicked Problem)——它們的解決方案只能依賴于每位教師的認(rèn)知靈活性且在三種知識的結(jié)合與交叉中去尋找”。[11]因此,基于Drupal的E-learning平臺的開發(fā)和應(yīng)用前景十分廣闊。
參考文獻(xiàn):
[1]張漢玉, 穆肅,任友群.學(xué)習(xí)管理系統(tǒng)的社會性交互功能比較——基于對Blackboard、Moodle、Sakai的調(diào)查與使用體驗(yàn)[J].現(xiàn)代遠(yuǎn)程教育研究,2013(2):38-44.
[2]翟菁.SAKAI與MOODLE的比較研究[J].軟件導(dǎo)刊,2008(9):33-34.
[3]葉海松.Moodle的二次開發(fā)與設(shè)計(jì)[J].電化教育研究,2007(4):50-55.
[4]宋述強(qiáng),鐘曉流,李海霞,焦麗珍,李婷,白薇琳.教育信息化的實(shí)踐趨勢、理論動(dòng)態(tài)與技術(shù)前沿——兼論《現(xiàn)代教育技術(shù)》雜志2013年選題策劃[J].現(xiàn)代教育技術(shù),2013(1):5-8.
[5]About Drupal[EB/OL].https://drupal.org/about.
[6]盛安元,黃存東,張前進(jìn).基于開源軟件Drupal工程實(shí)踐[J].武漢工業(yè)學(xué)院學(xué)報(bào), 2012(2):65-67.
[7]孫方.基于Drupal電子學(xué)檔平臺設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代教育技術(shù),2012(1):98-102.
[8]GNU General Public License [EB/OL]. http://www.gnu.org/licenses/gpl.html.
[9]郭玲.基于Drupal構(gòu)建精品課程網(wǎng)站的實(shí)踐與探討[J].硅谷,2011(16):139.
[10]API reference[EB/OL].https://api.drupal.org/api/drupal.
[11]何克抗.TPACK——美國“信息技術(shù)與課程整合”途徑與方法研究的新發(fā)展(下)[J].電化教育研究,2012(6):47-56.
(編輯:王天鵬)
endprint
(6)界面主題(theme)API
提供了系統(tǒng)內(nèi)所有數(shù)據(jù)的格式化顯示,使模塊的界面完全無縫嵌入到E-learning網(wǎng)站的總體界面風(fēng)格之中。
2.通用的Drupal模塊開發(fā)流程
(1)確定模塊名稱
在modules目錄下創(chuàng)建模塊目錄和文件,例如results_table。模塊名稱既是API hook的前綴,也是數(shù)據(jù)庫中相關(guān)表的名稱或前綴。
(2)實(shí)現(xiàn)hook_help()
主要是模塊的文字描述,使模塊出現(xiàn)在Drupal的模塊管理器中。
(3)實(shí)現(xiàn)hook_permission()
定義了模塊的顯示、編輯、管理等權(quán)限,之后可以在Drupal的權(quán)限管理界面中設(shè)置哪些用戶群組(角色)擁有哪些權(quán)限。
(4)實(shí)現(xiàn)hook_menu()
使模塊出現(xiàn)在Drupal的導(dǎo)航菜單中,也就是指定進(jìn)入模塊的入口鏈接,以及入口的回調(diào)函數(shù)(即主界面)。
(5)編寫主界面函數(shù)
首先指定所要顯示的數(shù)據(jù)表的列名和對結(jié)果進(jìn)行排序的列,并構(gòu)建查詢對象,然后在執(zhí)行查詢時(shí)指定表格每頁顯示的行數(shù)。最后將查詢結(jié)果保存到行數(shù)組中,并顯示結(jié)果和分頁。
(6)啟用模塊
在Drupal的模塊管理器中啟用模塊。
可以看出,Drupal API采用了簡潔的面向?qū)ο缶幊蹋∣OP)的架構(gòu),僅需很少的代碼就實(shí)現(xiàn)了Web應(yīng)用開發(fā)中必需的數(shù)據(jù)庫查詢、分頁、表格、導(dǎo)航等操作和界面元素,有效提高了開發(fā)效率。
五、結(jié)語
使用基于Drupal的E-learning系統(tǒng),可以讓學(xué)校在單純的E-learning應(yīng)用和復(fù)雜的二次開發(fā)之間找到一種折中方案。這種模式特別有利于E-learning環(huán)境中構(gòu)建教師應(yīng)用技術(shù)解決教學(xué)問題的知識平臺的形成,因?yàn)椤斑@種知識將要解決的問題 (即信息技術(shù)整合于學(xué)科教學(xué)過程所遇到的問題),都屬于沒有確定的解決方案的‘劣性問題(Wicked Problem)——它們的解決方案只能依賴于每位教師的認(rèn)知靈活性且在三種知識的結(jié)合與交叉中去尋找”。[11]因此,基于Drupal的E-learning平臺的開發(fā)和應(yīng)用前景十分廣闊。
參考文獻(xiàn):
[1]張漢玉, 穆肅,任友群.學(xué)習(xí)管理系統(tǒng)的社會性交互功能比較——基于對Blackboard、Moodle、Sakai的調(diào)查與使用體驗(yàn)[J].現(xiàn)代遠(yuǎn)程教育研究,2013(2):38-44.
[2]翟菁.SAKAI與MOODLE的比較研究[J].軟件導(dǎo)刊,2008(9):33-34.
[3]葉海松.Moodle的二次開發(fā)與設(shè)計(jì)[J].電化教育研究,2007(4):50-55.
[4]宋述強(qiáng),鐘曉流,李海霞,焦麗珍,李婷,白薇琳.教育信息化的實(shí)踐趨勢、理論動(dòng)態(tài)與技術(shù)前沿——兼論《現(xiàn)代教育技術(shù)》雜志2013年選題策劃[J].現(xiàn)代教育技術(shù),2013(1):5-8.
[5]About Drupal[EB/OL].https://drupal.org/about.
[6]盛安元,黃存東,張前進(jìn).基于開源軟件Drupal工程實(shí)踐[J].武漢工業(yè)學(xué)院學(xué)報(bào), 2012(2):65-67.
[7]孫方.基于Drupal電子學(xué)檔平臺設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代教育技術(shù),2012(1):98-102.
[8]GNU General Public License [EB/OL]. http://www.gnu.org/licenses/gpl.html.
[9]郭玲.基于Drupal構(gòu)建精品課程網(wǎng)站的實(shí)踐與探討[J].硅谷,2011(16):139.
[10]API reference[EB/OL].https://api.drupal.org/api/drupal.
[11]何克抗.TPACK——美國“信息技術(shù)與課程整合”途徑與方法研究的新發(fā)展(下)[J].電化教育研究,2012(6):47-56.
(編輯:王天鵬)
endprint