除了利用原有的預設功能以外,
要創建一個引人入勝的線上課程,
作者必須透過各式各樣的組件來達成.
XBlock就是edX的組件架構,
除了課程可以用以外,
XBlock也能用在API上,
提供edX各式web服務,
馬上進入今天的主題:
在OpenedX自訂一個XBlock組件
先下載xblock-sdk
在安裝以前,
系統除了要安裝python2.7以外,
還需要
sudo apt-get install python-dev libxml2-dev libxslt-dev lib32z1-dev libjpeg62-dev
1. 接著下載xblock-sdk
git clone https://github.com/edx/xblock-sdk.git
2. 建議使用virtualenv建構一個開發環境
virtualenv -p /usr/bin/python2.7 tenv
並啟用該環境
source tenv/bin/activate
3. 進入xblock-sdk目錄,
並執行make install
安裝完畢首次要再執行
python manage.py migrate
4. 到此xblock-sdk的環境就安裝完成了
打上
python manage.py runserver
再到瀏覽器打上localhost:8000
可將設計好的xblock組件先安裝在此xblock-sdk的環境進行測試
5. 在xblock-sdk測試完已經開發完的xblock,
確定沒有問題之後,
就可以部屬到OpenedX中
首先要先將其安裝到OpenedX
sudo -u edxapp /edx/bin/pip.edxapp install 新的xblock
同時確認 cms / lms 的 common.py 中
xblock_select_function = prefer_xmodules 選項enable
(路徑為:
/edx/app/edxapp/edx-platform/lms/envs/common.py
/edx/app/edxapp/edx-platform/cms/envs/common.py
)
安裝完畢以後進入studio中,
找到想新增組件的課程
選擇settings / advanced settings
在advanced module list 中加入新的xblock組件
在課程組件選擇 advance,
就能看見新增的組件
如何新增一個xblock呢?
利用xblock-sdk/bin/workbench-make-xblock,
透過此命令可新增基本的xblcok組件,
以利後續開發新功能
workbench-make-block會詢問兩個問題
1. xblock名稱
2. xblock class名稱 ( 第一個字要大寫,字尾必須為XBlock )