999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Moodle系統(tǒng)下模塊開(kāi)發(fā)初探

2008-12-31 00:00:00
電腦知識(shí)與技術(shù) 2008年16期

摘要:Moodle是一個(gè)功能強(qiáng)大,源代碼開(kāi)放的在線學(xué)習(xí)管理系統(tǒng),并且還在不斷持續(xù)開(kāi)發(fā)中。教師可以添加、修改各種活動(dòng)或資源,來(lái)定制其課程形式,實(shí)現(xiàn)交互式的教學(xué)過(guò)程。Moodle是模塊化的,提供很多不同模塊接口,開(kāi)發(fā)者可以貢獻(xiàn)開(kāi)發(fā)好的模塊來(lái)增強(qiáng)Moodle的功能。本文以HTML板塊的創(chuàng)建及安裝過(guò)程,展示Moodle的模塊開(kāi)發(fā)。

關(guān)鍵詞:Moodle;MySQL;PHP;模塊;在線學(xué)習(xí)管理系統(tǒng);

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)16-21337-03

Plainly Exploring of Developing Modular of Moodle System

LIU Ping

(Department of Information Engineering, Wuxi South Ocean College, Wuxi 214081,China)

Abstract: Moodle is a Open Source learning manager system which has strong function. And it is still developing continually. As a teacher, you can add or modify all kinds of activity or resource to custom your course and realize the interactive process of teaching. Moodle is modularized, provids many different interfaces for modular. A developer can contribute a developed modular to buildup the function of Moodle. The article descripts the process of creating and installing HTML block to display the developing of modular of Moodle.

Key words: Moodle; MySQL; PHP; Modular; Learning Manager System

1 引言

Moodle是一個(gè)架設(shè)在因特網(wǎng)基礎(chǔ)上的課程和網(wǎng)站的軟體包。這個(gè)項(xiàng)目還在不斷持續(xù)開(kāi)發(fā),其設(shè)計(jì)目的是提供一個(gè)用于教育的建構(gòu)主義框架。Moodle是免費(fèi)的開(kāi)放源代碼軟件(遵守GNU Public License)。簡(jiǎn)單說(shuō),這意味著Moodle有版權(quán),但是您仍然有很大的自由度來(lái)使用它。您可以拷貝、使用和修改Moodle,但不要修改和刪除原有的許可協(xié)議和版權(quán),并且其它派生工作也使用同樣的授權(quán)協(xié)議。如果您有任何問(wèn)題,請(qǐng)閱讀更詳細(xì)的許可協(xié)議,并請(qǐng)直接聯(lián)系版權(quán)所有人。Moodle可以在任何支持 PHP的計(jì)算機(jī)上運(yùn)作,并且支持多種類型的數(shù)據(jù)庫(kù)(尤其是MySQL)。Moodle 這個(gè)詞本是 Modular Object-Oriented Dynamic Learning Environment(模塊化面向?qū)ο蟮膭?dòng)態(tài)學(xué)習(xí)環(huán)境)的縮寫,程序員和教育理論家經(jīng)常使用它。它也是一個(gè)動(dòng)詞,表述的是一個(gè)這樣的過(guò)程:遇事不慌不忙,想起什么就做什么,快樂(lè)的瞎忙活可也經(jīng)常會(huì)帶來(lái)一些領(lǐng)悟和創(chuàng)新。Moodle 的開(kāi)發(fā)就是這樣,學(xué)生與教師在在線課程中學(xué)習(xí)與教課也是這樣。使用 Moodle 的人被稱為 Moodler。圖1為正在使用的Moodle系統(tǒng)。

圖1 正在使用的Moodle系統(tǒng)

2 Moodle功能介紹

Moodle系統(tǒng)是一個(gè)功能完善的在線學(xué)習(xí)系統(tǒng),是網(wǎng)絡(luò)上無(wú)數(shù)教育家、程序員及Moodle愛(ài)好者共同努力的結(jié)果。它有這樣幾種用戶角色:學(xué)生、教師、管理員、開(kāi)發(fā)者。對(duì)于教師,可以添加、修改活動(dòng)或資源,以完成各種教學(xué)活動(dòng)。可以添加的資源有:標(biāo)簽、文本頁(yè)、網(wǎng)頁(yè)、鏈接到文件或站點(diǎn)、顯示一個(gè)目錄。系統(tǒng)提供一系列健壯的交互式學(xué)習(xí)活動(dòng)模塊可供教師添加到課程中,有這樣一些活動(dòng)模塊:聊天、討論區(qū)、投票、Wikis、作業(yè)、測(cè)驗(yàn)、SCORM/AICC、詞匯表、問(wèn)卷調(diào)查和數(shù)據(jù)庫(kù)。

對(duì)于管理員可以實(shí)現(xiàn)的功能有:系統(tǒng)安裝、安全維護(hù)、系統(tǒng)設(shè)置、用戶維護(hù)等。PHP與MySQL的組合是一個(gè)能夠在幾乎所有平臺(tái)上運(yùn)行的Web應(yīng)用平臺(tái),而這正是Moodle系統(tǒng)的開(kāi)發(fā)平臺(tái)(在Linux、Windows和Mac OS X上)。Moodle 用ADOdb來(lái)訪問(wèn)數(shù)據(jù)庫(kù),因此它可以使用超過(guò)十種不同的數(shù)據(jù)庫(kù)(然而很不幸,目前它還不能直接在所有這些數(shù)據(jù)庫(kù)上創(chuàng)建表格)。本系統(tǒng)很容易安裝、學(xué)習(xí)和修改。安裝Moodle系統(tǒng)時(shí),需要先安裝Apache,MySQL和PHP。Moodle系統(tǒng)在不斷地開(kāi)發(fā)中,因此不斷有新版本發(fā)布出來(lái)。管理員可以很容易地將系統(tǒng)從一個(gè)版本升級(jí)到下一個(gè)。關(guān)于Moodle系統(tǒng)如何安裝升級(jí),在其支持網(wǎng)站www.moodle.org 上有詳細(xì)的介紹,用戶可以很方便地查詢到。

Moodle的首字母 M 表示'模塊化'的意思。 Moodle提供很多不同模塊接口,開(kāi)發(fā)者可以貢獻(xiàn)開(kāi)發(fā)好的模塊來(lái)增強(qiáng)Moodle的功能。當(dāng)你開(kāi)發(fā)完一個(gè)新的模塊,請(qǐng)將它發(fā)布在 Moodle 模塊數(shù)據(jù)庫(kù)列表中,這些模塊的文檔也要一起發(fā)布。下面是已經(jīng)存在的模塊列表: 活動(dòng)模塊 、作業(yè)類型 、認(rèn)證方法 、板塊 、課程格式 、數(shù)據(jù)庫(kù)字段 、數(shù)據(jù)庫(kù)調(diào)整 、選課插件 、過(guò)濾器 、問(wèn)題引擎 、問(wèn)題 導(dǎo)入/導(dǎo)出格式 、問(wèn)題類型--教師文檔 、問(wèn)題類型--開(kāi)發(fā)者文檔 、測(cè)驗(yàn)報(bào)告 、資源類型 、統(tǒng)一驗(yàn)證插件。這里我們以“板塊”中的HTML板塊為例演示Moodle的模塊開(kāi)發(fā)。

3 HTML板塊的創(chuàng)建及安裝

我們從零開(kāi)始演示如何創(chuàng)建一個(gè)HTML板塊。我們將板塊命名為“simplehtml”,當(dāng)然你也可以命名為其它名字。下面我們提到文件路徑時(shí),以“/”開(kāi)始,這指的是Moodle系統(tǒng)的安裝路徑(比如:D:\\Moodle),所有文件和路徑都基于這個(gè)路徑。

要在Moodle中定義一個(gè)板塊,我們需要提供一個(gè)源代碼文件。首先創(chuàng)建文件夾“/blocks/simplehtml/”及文件“/blocks/ simplehtml /block_ simplehtml.php”。在文件block_ simplehtml.php中我們編寫代碼。我們首先輸入以下代碼:

class block_ simplehtml extends block_base {

function init() {

$this->title = \"Simplehtml\";

$this->version = 2004123100;

}

}

在代碼的第一行中,我們定義了一個(gè)板塊類block_simplehtml,類名必須按照這樣的方式命名,其中只有“simplehtml”可以根據(jù)需要更改(事實(shí)上是必須改)。我們?cè)陬愔卸x了一個(gè)方法“init()”,這是所有板塊都需要的必要元素,它的目的是設(shè)置兩個(gè)類成員變量。其中“$this->title”是設(shè)置板塊的標(biāo)題,你可以把它設(shè)置為你喜歡的內(nèi)容,但是不能設(shè)置為空。如果你希望隱藏板塊可以通過(guò)調(diào)用“hide_header() ”方法來(lái)實(shí)現(xiàn),即在類中加入如下代碼:

function hide_header() {

return true;

}

“$this->version”是設(shè)置板塊的版本號(hào),這實(shí)際上只有在你的板塊需要在數(shù)據(jù)庫(kù)的特定表中保持自己的數(shù)據(jù)時(shí)需要(一般適用于非常復(fù)雜的板塊)。在這里我們創(chuàng)建的是簡(jiǎn)單板塊,不需要擁有自己的私有數(shù)據(jù),我們把它設(shè)置為“YYYYMMDD00”。

為了使我們的板塊能顯示一些內(nèi)容,我們需要再添加方法“get_content()”到板塊類block_simplehtml中,添加代碼如下:

function get_content() {

if ($this->content !== NULL) {

return $this->content;

}

$this->content = new stdClass;

$this->content->text = 'The content of our Simplehtml block!';

$this->content->footer = 'Footer here...';

return $this->content;

}

這個(gè)方法很容易理解。首先我們檢查“$this->content”的值,如果不為空,就返回它的值,否則繼續(xù)處理下去。“$this->content->tex”與“$this->content->footer”的初始值分別設(shè)置為你喜歡的一串字符。到這里我們定義的板塊“simplehtml”能夠在Moodle中自動(dòng)安裝并添加到課程中了。在安裝好的Moodle系統(tǒng)首頁(yè),單擊“網(wǎng)站管理”中的“通告”,根據(jù)提示即可將“simplehtml”板塊安裝到系統(tǒng)中。然后,在課程中打開(kāi)編輯功能,在“版塊”下拉列表中,即可看到我們新創(chuàng)建的“simplehtml”板塊。單擊它,即可在課程中添加一個(gè)“simplehtml”板塊。

當(dāng)前我們定義的板塊還沒(méi)有太大的用處,它只能顯示固定的消息(在代碼中我們?cè)O(shè)定為“The content of our Simplehtml block!”),而我們希望的是允許教師定制板塊中的內(nèi)容。就板塊來(lái)說(shuō),我們要調(diào)用“實(shí)例配置”。要實(shí)現(xiàn)“實(shí)例配置”,首先我們要告訴Moodle,我們要它給板塊提供特定實(shí)例的配置功能。我們只要再添加方法“instance_allow_config()”到板塊類中即可,代碼如下:

function instance_allow_config() {

return true;

}

這樣一個(gè)小的改變后,當(dāng)我們?cè)谌魏握n程中打開(kāi)編輯功能,就可以使Moodle在板塊的首部顯示一個(gè)“配置”按鈕。當(dāng)然,如果你現(xiàn)在單擊“配置”按鈕,你會(huì)看到一個(gè)提示,告知你板塊的配置功能不能正確執(zhí)行。不要緊,這個(gè)提示是對(duì)的。因?yàn)槲覀円驧oodle提供配置功能,但我們并沒(méi)有告訴它我們需要什么樣的配置功能。為此,我要再創(chuàng)建一個(gè)文件:/blocks/simplehtml/config_instance.html(這個(gè)文件必須完全按照這樣命名)。然后,復(fù)制下面的代碼到文件中,并保存:

:

config->text); ?>

\" />

不難看出,上面的代碼給我們提供了一個(gè)可編輯的文本區(qū)域,用于寫我們想顯示在板塊中的內(nèi)容;還提供了一個(gè)提交按鈕,用于保存。但是,“$this->config->text”是什么意思呢?Moodle想盡辦法使得板塊開(kāi)發(fā)工作簡(jiǎn)單化!這里的文本區(qū)域?qū)嶋H上是以“text”命名的,當(dāng)我們單擊提交按鈕,Moodle保存config_instance.html文件中的每一個(gè)表單元素中的內(nèi)容,作為實(shí)例配置數(shù)據(jù)。我們可以通過(guò)實(shí)際配置變量“$this->config->variablename”訪問(wèn)這些數(shù)據(jù),“variablename”就是我們用于這個(gè)表單元素的實(shí)際的名字,在這里就是“text”。這樣,我們將文本區(qū)域與板塊當(dāng)前的內(nèi)容聯(lián)系起來(lái),并允許我們修改它。實(shí)例配置變量可以在除了“init”方法以外的任何類方法中使用,通過(guò)“$this->config”,我們可以指向?qū)嵗渲脭?shù)據(jù)。最后,我們要讓板塊顯示被保存的配置數(shù)據(jù)。為此,我們?cè)凇?blocks/simplehtml/block_simplehtml.php ”文件中,找到如下代碼段:

$this->content = new stdClass;

$this->content->text = 'The content of our Simplehtml block!';

$this->content->footer = 'Footer here...';

把它改成:

$this->content = new stdClass;

$this->content->text = $this->config->text;

$this->content->footer = '';

因?yàn)槟_注不是很重要,可以把它從板塊中移除,故我們把“$this->content->foote”設(shè)置為空字符串。

到這里,當(dāng)我們?cè)谡n程中添加simplehtml板塊后,就可以很容易地更改其顯示的內(nèi)容了。在此基礎(chǔ)上,讓我們進(jìn)一步實(shí)現(xiàn)可以修改板塊的標(biāo)題。我們?cè)偬砑右粋€(gè)表單元素到“/blocks/simplehtml/config_instance.html”文件中,代碼如下:

:

config->title; ?>\" />

保存文件后,我們進(jìn)入課程,編輯板塊的標(biāo)題,但是卻沒(méi)有任何變化。這是因?yàn)榍懊嫖覀冊(cè)凇癷nit”中設(shè)置了“$this->title”的值后,就沒(méi)有改變它的值。注意“$this->title”不等同于“$this->config->title”,“$this->title”用于設(shè)置板塊標(biāo)題,“$this->config->title”用于指向?qū)嵗渲脭?shù)據(jù)中的標(biāo)題。我們需要將“$this->title”的值替換為實(shí)例配置值。但是前面我們說(shuō)過(guò),我們可以在板塊的任何類方法中使用“$this->config”,但是除了“init”方法。那該怎么辦呢?讓我們抽出另一張王牌。把下面的方法添加到我們的板塊類中:

function specialization() {

if(!empty($this->config->title)){

$this->title = $this->config->title;

}

else{

$this->config->title = '';

}

if(empty($this->config->text)){

$this->config->text = '';

}

}

方法“specialization()”是怎樣起作用的呢?這個(gè)有魔力的方法有一個(gè)很好的屬性:我們的實(shí)例配置數(shù)據(jù)一裝載并可用時(shí),它就被

(下轉(zhuǎn)第1344頁(yè))

(上接第1339頁(yè))

Moodle自動(dòng)調(diào)用(也就是,在“init”之后立即被調(diào)用),也就是板塊的所有內(nèi)容第一次被處理之前。所以,當(dāng)任何配置數(shù)據(jù)需要在板塊一裝載就設(shè)置時(shí),這個(gè)方法是最好的選擇。

現(xiàn)在,我們的板塊可以配置標(biāo)題和內(nèi)容了。我們讓它功能再?gòu)?qiáng)一些:實(shí)現(xiàn)在一個(gè)課程中可以添加多個(gè)這種類型的板塊。為此,需要再添加將“instance_allow_multiple()”方法添加到板塊類中,代碼如下:

function instance_allow_multiple() {

return true;

}

這樣就告訴Moodle,要求它允許在一門課程中添加任意數(shù)目個(gè)simplehtml板塊。值得注意的是:如果板塊自身允許在同一個(gè)頁(yè)面中有多個(gè)實(shí)例,管理員可以再設(shè)置是否允許這種行為。在“網(wǎng)站管理”板塊中的“插件”下的“板塊”頁(yè)中,即可設(shè)置是否允許板塊在同一頁(yè)面中有多個(gè)實(shí)例。另外,一旦“instance_allow_multiple()”方法被添加到板塊類中,在前面我們已經(jīng)添加到板塊類中的“instance_allow_config()”方法,就不再有意義了。Moodle認(rèn)為如果一個(gè)板塊允許在同一頁(yè)面中有多個(gè)實(shí)例,這些實(shí)例一定是要求可配置的(在同一頁(yè)面中,有多個(gè)完全一樣的板塊實(shí)例是沒(méi)有意義的),因此會(huì)自動(dòng)提供“配置”按鈕。所以,我們現(xiàn)在在板塊類中移除“instance_allow_config()”方法,不會(huì)有任何影響。

現(xiàn)在一個(gè)簡(jiǎn)單的HTML板塊已經(jīng)定義好了,當(dāng)然還可以添加更多的方法,如果方法的默認(rèn)功能不能滿足你的要求,還可以修改方法,以豐富板塊的功能,這里不再詳述。

4 結(jié)束語(yǔ)

Moodle系統(tǒng)是一個(gè)功能強(qiáng)大的開(kāi)放源代碼的在線學(xué)習(xí)管理系統(tǒng)。用戶可以根據(jù)需要定制系統(tǒng),不僅可以選擇添加或刪除其現(xiàn)有的功能,還可以開(kāi)發(fā)新的模塊增強(qiáng)Moodle的功能。本文僅以開(kāi)發(fā)一個(gè)簡(jiǎn)單的HTML板塊為例,介紹其功能擴(kuò)展,感興趣的讀者可以嘗試開(kāi)發(fā)其它的模塊整合到Moodle中。

參考文獻(xiàn):

[1] 薛軍超.MySQL網(wǎng)絡(luò)數(shù)據(jù)庫(kù)開(kāi)發(fā)[M].北京:人民郵電出版社,2001.

[2] 木林森.PHP Web數(shù)據(jù)庫(kù)開(kāi)發(fā)與實(shí)例[M].北京:清華大學(xué)出版社,2001.

[3] 馮燕奎.PHP4.0與MySQL動(dòng)態(tài)網(wǎng)站編程[M].北京:清華大學(xué)出版社,2002.

注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。

主站蜘蛛池模板: 国产H片无码不卡在线视频| 日韩精品一区二区三区swag| 国产农村妇女精品一二区| 国产成人乱码一区二区三区在线| 综合人妻久久一区二区精品 | 亚洲精品午夜无码电影网| 精品国产成人国产在线| 波多野结衣一级毛片| 日韩黄色在线| 伊人色综合久久天天| 国产成人精品综合| 真实国产乱子伦高清| 久久精品丝袜| 国产一区免费在线观看| a级毛片免费播放| 亚洲欧美激情小说另类| 她的性爱视频| 久久午夜夜伦鲁鲁片不卡| 18黑白丝水手服自慰喷水网站| 国产在线一二三区| 国产免费一级精品视频| 天堂av综合网| 欧美日本二区| 久久国产精品无码hdav| 亚洲欧美不卡视频| 在线中文字幕网| 欧美黄色网站在线看| 幺女国产一级毛片| 青青青国产视频手机| 免费毛片视频| 一级香蕉人体视频| 亚洲日韩图片专区第1页| 一级香蕉人体视频| 毛片久久网站小视频| 亚洲无码日韩一区| 欧美精品综合视频一区二区| lhav亚洲精品| 日韩高清中文字幕| 亚洲精品中文字幕无乱码| 日本日韩欧美| 免费无码又爽又黄又刺激网站 | 9丨情侣偷在线精品国产| 国产美女精品一区二区| 免费av一区二区三区在线| 国产精品永久在线| 女人av社区男人的天堂| 中文字幕日韩欧美| 亚洲美女久久| 老司机午夜精品网站在线观看| 国产91小视频在线观看| 国产精品亚洲αv天堂无码| 国产美女在线免费观看| 999国内精品久久免费视频| 亚洲第一极品精品无码| 久久精品娱乐亚洲领先| 亚洲一区第一页| 国产男人的天堂| 亚洲水蜜桃久久综合网站| 成色7777精品在线| 综合人妻久久一区二区精品 | 国产毛片片精品天天看视频| 午夜视频日本| 91伊人国产| 国产成人无码Av在线播放无广告| 精品一区二区三区四区五区| 亚洲一区二区约美女探花| 国产区精品高清在线观看| 97在线碰| 色视频国产| 无码电影在线观看| 久草网视频在线| 欧美日韩另类国产| 四虎影视8848永久精品| 99精品免费在线| 亚洲av中文无码乱人伦在线r| 亚洲国产成熟视频在线多多| 婷婷午夜天| 欧美日韩va| 国产尤物视频在线| 日韩a在线观看免费观看| 色老二精品视频在线观看| 亚洲国产精品一区二区第一页免|