杜小虎+張太紅+駱超
摘要:近幾年,大型開放式在線學習平臺Mooc(massive open online courses)風靡全球。現如今,Udacity、Coursera、edX是主流的開放式網絡學習課程,三大網絡學習平臺都有不同的特點。Open edx平臺以其開源代碼為優勢,被國內外眾多技術人員所接納。許多技術人員以edx平臺為基礎進行二次開發,形成了許多有特色的開放式學習平臺。該文主要介紹以edx平臺為基礎,在底層框架基礎上進行簡單的本地化、郵箱激活、頁面修改操作,最終設計實現本人的個性定制網絡學習平臺。
關鍵詞:Mooc;Open edx;二次開發;個性定制
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)02-0055-03
Design and Implementation of Personality Customization on Open EDX Platform
DU Xiao-hu, ZHANG Tai-hong, LUO Chao
(School of Computer Science and Information Engineering,Xinjiang Agricultural University, Urumqi 830000, China)
Abstract: In recent years,Mooc is popular all over the world.Now,Udacity、Coursera、edx are mainstream open online learning courses.The three major online learning platfroms have different characteristics.The open edx platform with its open source code, has been accepted by many technical personnel both at home and abroad.Many technical personnel Based on the edx platform for secondary development,fromed many distinctive open online platforms.This article is basis of the edx platfrom,on the basis of the underlying framework for simple localization、email activation、page modification,finally designs and implements my personalized customized web-based learning platform.
Key words: Mooc; secondary development; personalized customization; Open EDX
Mooc(大規模在線教育平臺)興起于2012年[1],這種在線教育方式近年來發展迅猛,尤其是近一兩年。隨著高校教育改革和創新,為了方面人們對學習的需求,保證學習質量和效果,大量在線教育平臺在國內外涌現。Udacity、Coursera、edx三大Mooc平臺一直是國內外流行的在線學習平臺。三大平臺中,edx以其開源非盈利特點,得到廣闊的發展。清華大學學堂在線是采用此平臺為基礎,根據自身需求對平臺做的個性化。
本文是以edx平臺作為底層框架,開發基于馬業在線教育平臺。現階段工作是熟悉edx平臺體系結構,能夠修改底層代碼,完成個性化平臺定制。后續還會繼續跟進和拓展,不斷優化平臺,最終完成馬業在線培訓平臺的建設。
1 總體設計
Edx平臺是一種龐大、復雜的開源框架,底層代碼復雜多樣,要實現個性定制需要對edx平臺基本架構有所認識。根據自身學習,在本地計算機上搭建edx平臺,搭建完成后實現本地化、郵箱激活、頁面修改等個性定制,具體方案設計如圖1。
2 具體功能實現
2.1 edx平臺搭建
在部署edx平臺之前,建議在自己電腦上安裝搭建edx平臺,在本地計算機完成個性化定制,能夠對功能拓展,在將平臺部署在服務器中。這樣利于初學者對edx平臺學習,出現錯誤利于修改。edx官網已給出安裝過程,但因國內網絡資源限制,安裝過程比較緩慢。在此對平臺搭建不做過多說明,只簡單列出平臺搭建環境所需軟件及硬件要求:
軟件:虛擬機 采用oracle公司的Virtualbox
鏡像 Ubuntu16.04amd64(oraclejdk需要)
硬件:電腦配置 至少8G運行內存 至少2GHz 或者EC2
至少25G空閑磁盤 推薦50G作為生產運行用
2.2 本地化
完成搭建Open edx平臺,開始顯示的語言為英文,為了方便使用,必須進行本地化。edx平臺采用專業的集成翻譯平臺transifex,進行平臺的翻譯、管理工作。在transifex平臺,有許多愛好者免費在這里翻譯。我們只需要將翻譯好的內容下載到本地,通過編譯覆蓋edx英文語言,應用中文即可實現本地化。以下為用transifex進行本地化步驟:
1) 安裝transifex客戶端
Sudo apt-get install transifex-client
2) 在home目錄新建transifex配置文件并編輯寫入以下內容
[https://www.transifex.com]endprint
hostname = https://www.transifex.com
username = user #自己申請的用戶名
password = pass #密碼
token =
3) 修改.transifexrc文件權限
Chmod o+rw ~/.transifexrc
4) 切換到 edxapp 用戶并加載對應的環境變量
sudo -u edxapp bash
source /edx/app/edxapp/edxapp_env
cd /edx/app/edxapp/edx-platform
5) 修改lms.env.json和cms.env.json 文件
“LANGUAGE_CODE”:”zh-cn”
6) 執行翻譯
tx pull -l zh_CN 抓取中文語言包 paver i18n_generate
7) 更新assets 并重啟
paver update_assets lms —settings aws
paver update_assets cms —settings aws
sudo /edx/bin/supervisorctl restart edxapp:
完成以上操作,edx平臺的本地化與國際化基本完成。在transifex中,edx平臺漢化不是100%完整的,有些細節地方沒有翻譯,這就需要我們從底層翻譯文件進行翻譯。在conf/locale/zh_cn文件夾里存著這.mo和.po文件,其中.po文件就是我們要進行翻譯的文件,上傳編譯后生成.mo文件。我們只需要在.po文件msgid” ”中寫入我們翻譯的英文語言,在msgstr” ”寫入對應的中文即可。如圖2是漢化完成后的平臺樣式。
2.3 郵箱激活
郵件激活是注冊賬號時候使用郵箱驗證功能。注冊后發送一封郵件到注冊郵箱里面,然后點擊郵箱里面的鏈接激活郵箱。這個其實就是通過第三方,將數據傳遞給用戶來獲取驗證碼。郵件激活服務可以專門搭建郵件服務器負責發送郵件,可以采用SMTP(簡單郵件服務協議)來發送激活郵件。本次采用SMTP發送激活郵件,使用qq第三方客戶端發送。具體如下:
1) 打開smtp并記住第三方授權密碼
查看各種收發郵件是否支持smtp協議,如果支持需要在郵件設置中打開smtp。以qq郵箱為例:
打開qq郵箱smtp 步驟:登陸郵箱—設置—賬戶—將滾動條拖到最后,找到smtp 打開,會獲得一個授權第三方登陸密碼(在lms.auth.json和cms.auth.json中需要填入的密碼)
2) 配置發件服務器地址和端口:
sudo vi /edx/app/edxapp/cms.env.json
sudo vi /edx/app/edxapp/lms.env.json
修改"EMAIL_HOST": "smtp.163.com", (qq修改為 smtp.qq.com)
"EMAIL_PORT": 25, (端口不變)
"EMAIL_USE_TLS": true,
"SITE_NAME": "cherry.cs.tsinghua.edu.cn", (發送激活郵件后 點擊激活進入的頁面 本機127.0.0.1:98)
"DEFAULT_FROM_EMAIL":jennyzhang8800@163.com"(自己的qq賬號120274165@qq.com)
3) 配置發件賬號和密碼
sudo vi /edx/app/edxapp/cms.auth.json
sudo vi /edx/app/edxapp/lms.auth.json
"EMAIL_HOST_USER": "jennyzhang8800@163.com",(自己的郵箱賬號 120274165@qq.com)
"EMAIL_HOST_PASSWord":"*****", (第三方授權密碼 第一步給的)
4) 確認無誤,重啟edxapp
sudo /edx/bin/supervisorctl restart edxapp:
sudo /edx/bin/supervisorctl restart edxapp_worker:
完成以上步驟即可完成第三方郵件發送,因為是本地計算機,暫時只用qq的SMTP來發送激活郵件,后期進行開發會使用專門郵件服務器或用云端服務來發送激活郵件。
2.4 頁面樣式修改
頁面修改是定制個性化平臺的主要部分。頁面修改可以直接在edx底層代碼上直接修改,也可以新建主題(theme)進行修改。直接修改底層代碼出現錯誤時不利于還原,所以建議新建主題,將需要修改頁面和Css樣式拷貝到自己的主題下面進行修改。
Edx安裝完成開始使用的是默認主題,我們可以更換edx平臺自帶的主題。在使用自己的主題前,需要驗證更換edx自帶主題是否成功,只有驗證成功,才可以應用自己的主題。否則可能在安裝中或者底層代碼有錯誤。此時需要查看日志錯誤,進行修改后驗證主題應用。
Edx平臺自帶主題有edx.org、open-edx、red-theme、stanford-style。默認主題為open-edx,可以直接使用的主題red-theme.stanford-style需要修改文件才能使用,其它兩個主題不適用于新版本。endprint
1) 應用主題需要創建超級用戶如下:
sudo su -s /bin/bash edxapp
/edx/bin/python.edxapp /edx/bin/manage.edxapp lms manage_user zth zth@xjau.edu.cn —staff —superuser —settings=aws
設置超級用戶密碼:
exit
cd /edx/app/edxapp/edx-platform
sudo -u www-data /edx/bin/python.edxapp./manage.py lms —settings aws changepassword zth
完成以上操作,超級用戶創建成功。
2) 修改lms.env.json ENABLE_COMPREHENSIVE_THEMING 為true
在COMPREHENSIVE_THEME_DIRS 添加themes路徑
3) 登陸后臺管理員界面(http://192.168.0.103/admin/)找到Theming進入site theme,修改Theme dir name 為自己應用的主題,如red-theme。應用完成,重啟edxapp即可觀察是否應用成功。
自建theme主題需要知道主題的文件目錄結構,如圖3目錄結構。
文章以自建主題my-theme為例,進行后續頁面修改操作。
1) 修改logo圖片
直接將應用主題logo拷貝到my-theme主題下的lms/static/images 中即可。應用圖片大小一定要和原圖片大小一致,否則需要進行樣式調整。
2) 背景圖片修改
將edx默認主題的index.html和footer.html文件拷貝到/my-theme/lms/template中,編輯index.html. 找到 (背景圖片在:themes/my-theme/lms/static/images下面) 3) 修改歡迎來到open edx文字,刪除背景,只顯示文字。 編輯index.html,修改 Style=”background:transparent; box-shadow:0 0 0 0;” 4) 刪除底部Open edx圖標和版權說明 編輯footer.html 找到