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