羅堯章 劉江朝 鄒培忠
(北方民族大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 750021)
基于drupal的英語學(xué)習(xí)交流網(wǎng)站的開發(fā)
羅堯章 劉江朝 鄒培忠
(北方民族大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 750021)
Drupal是一個(gè)用PHP語言開發(fā)的、在互聯(lián)網(wǎng)上被眾多網(wǎng)站所采用的CMS(Content Management System),而且Drupal除包含CMS的基本功能外,還擁有眾多可定制的功能模塊和一套完整的API,非常適合用于英語學(xué)習(xí)交流網(wǎng)站的平臺的構(gòu)建和二次開發(fā)。
開發(fā);Drupal;CMS;API
1.1 操作系統(tǒng)
Drupal[1]需要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ù),從而大幅度提語學(xué)習(xí)交流平臺的開發(fā)和維護(hù)管理效率。
1.2 基礎(chǔ)的 CMS(Content Management System)[2]平臺
Drupal的核心組件包含了構(gòu)建一套CMS的所必需的基礎(chǔ)元素,直接基于這些核心組件開發(fā)學(xué)習(xí)應(yīng)用模塊,可以避免重復(fù)勞動,提高開發(fā)效率。
(1)用戶(user)提供了可定制的用戶個(gè)人信息的字段,例如學(xué)習(xí)平臺中必要的信息。
(2)角色(role)實(shí)現(xiàn)角色群組劃分以及不同角色對模塊的訪問權(quán)限。
(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)。
1.3 面向英語學(xué)習(xí)交流的應(yīng)用的模塊組合
Drupal現(xiàn)有的一些功能模塊可以直接用于組建學(xué)習(xí)社區(qū),模塊的靈活應(yīng)用和組合可以避免類似功能的重復(fù)開發(fā)。
①評論(comment)評論模塊可以讓用戶對node中的內(nèi)容發(fā)表評論,從而實(shí)現(xiàn)了最基本的交互討論。②搜索(search)搜索模塊讓用戶搜索現(xiàn)有的所有節(jié)點(diǎn)內(nèi)容,實(shí)現(xiàn)對英語交流平臺的資源檢索。③投票(poll)投票模塊可以讓同學(xué)發(fā)起一個(gè)問卷,收集各自用戶對某一問題的看法。④論壇(forum)論壇模塊可以讓英語學(xué)習(xí)愛好者建立課程或主題的論壇,構(gòu)建網(wǎng)上學(xué)習(xí)社區(qū)。⑤博客(blog)博客模塊可以讓教師建立自己的個(gè)人博客,學(xué)生可以通過評論博客文章與教師及其他學(xué)生交互。[3]⑥文件上傳(upload)上傳模塊提供了穩(wěn)定、統(tǒng)一的文件上傳接口。⑦媒體資源(media)媒體資源模塊是一個(gè)基于樹狀目錄的資源庫,版主和愛好者可以共同分門別類地創(chuàng)建資源目錄并上傳多媒體資源,例如音頻、視頻、課件、參考資料等等。
2.1 成熟穩(wěn)定的CMS架構(gòu)
Drupal的基礎(chǔ)組件包含了構(gòu)成CMS的所有核心功能,如用戶管理、角色權(quán)限、內(nèi)容節(jié)點(diǎn)(node)發(fā)布等等,這些核心組件同樣是構(gòu)成學(xué)習(xí)平臺的基礎(chǔ)。
2.2 豐富的功能模塊
Drupal的擴(kuò)展模塊(module)種類繁多,包括博客、視頻媒體、等等,用戶可以根據(jù)自己的應(yīng)用需求選擇其中的模塊進(jìn)行自由組合和定制,從而獲得一套滿足自身需求的CMS。[4]
2.3 開源平臺
Drupal是用GNUGPL協(xié)議發(fā)布的自由軟件,同其它開源的平臺一樣,用戶可以獲得其完整的源代碼并進(jìn)行二次開發(fā)。
2.4 快速開發(fā)
基于Drupal進(jìn)行學(xué)習(xí)平臺開發(fā)的高效性體現(xiàn)在三個(gè)方面:
2.4.1 DrupalAPI
Drupal是一套面向?qū)ο螅∣O)的WebAPI,Drupal本身的核心組件和模塊都是使用DrupalAPI開發(fā)而來。DrupalAPI的意義在于:
(1)函數(shù)封裝
DrupalAPI封裝了PHP語言對數(shù)據(jù)庫、文件、圖片等數(shù)據(jù)的底層操作,提高了開發(fā)效率,并且避免了開發(fā)者自己實(shí)現(xiàn)底層操作可能造成的安全漏洞。
(2)內(nèi)部數(shù)據(jù)
DrupalAPI能夠快速調(diào)用Drupal系統(tǒng)內(nèi)部全局變量和用戶數(shù)據(jù),與手工進(jìn)行SQL查詢相比,大幅度提高了開發(fā)效率。
(3)權(quán)限掛鉤
通過DrupalAPI的權(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.4.2 模塊調(diào)用
Drupal可以在模塊中靈活調(diào)用其它模塊已經(jīng)實(shí)現(xiàn)的功能。模塊的相互調(diào)用最大限度地避免了重復(fù)開發(fā),提高了開發(fā)效率。
2.4.3 模塊開源
Drupal的模塊也是開源的,可以參照與所需功能基礎(chǔ)結(jié)構(gòu)相近的模塊進(jìn)行二次開發(fā),也可以直接對模塊進(jìn)行修改。
使用基于Drupal的英語學(xué)習(xí)系統(tǒng),可以讓學(xué)校在單純的學(xué)習(xí)應(yīng)用和復(fù)雜的二次開發(fā)之間找到一種折中方案。這種模式特別有利于學(xué)習(xí)環(huán)境中管理者應(yīng)用技術(shù)解決教學(xué)問題的知識平臺的形成,因此,基于Drupal的學(xué)習(xí)平臺的開發(fā)和應(yīng)用前景十分廣闊。
[1]AboutDrupal[EB/OL].https://drupal.org/about.
[2]盛安元,黃存東,張前進(jìn).基于開源軟件Drupal工程實(shí)踐[J].武漢工業(yè)學(xué)院學(xué)報(bào),2012(2):65~67.
[3]郭玲.基于Drupal構(gòu)建精品課程網(wǎng)站的實(shí)踐與探討[J].硅谷,2011(16):139.
[4]孫 方.基于Drupal電子學(xué)檔平臺設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代教育技術(shù),2012(1):98~102.
指導(dǎo)老師:劉江朝。
H319
A
1004-7344(2016)25-0283-01
2016-8-19