2018年12月30日 星期日

在OpenedX自訂一個XBlock組件

前陣子介紹過 Open edX的安裝

除了利用原有的預設功能以外,

要創建一個引人入勝的線上課程,

作者必須透過各式各樣的組件來達成.


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 )





沒有留言: