#set_tags(webct,webct 管理)
RIGHT:[[WebCT]]

* CE4 管理者用 Tips [#e220564e]

以下で ${WEBCT} はWebCTをインストールしたディレクトリ (インストールプログラムに指定したパス) を示す。

サーバは RedHat Linux を使っている。Windows Server で同様の tips が有効であるかは全く未確認。

#contents

** WebCT サーバ上で認証つきの CGI を使う [#h5aaef69]

${WEBCT}/webct/server/cgi-bin 以下のディレクトリに CGI スクリプトを置いとくと、

 https://webct_site/cgi-bin/XXX.cgi
 
でアクセスできる。さらに、以下のような内容の .htaccess ファイルを作成
し、cgi-bin/ 以下のサブディレクトリにおくとそのディレクト
リの内部のファイルには WebCT の認証がないとアクセスできな
くなる。WebCT ないからリンクをはると、透過的に利用でき、し
かも認証済の WebCT ID が $REMOTE_USER で参照できる。

 AuthDBMUserFile ${WEBCT}/webct/webct/generic/homearea/dbm_pass
 AuthName ByPassword
 AuthType Basic
 
 <Limit GET POST>
  require valid-user
 </Limit>

CGI の実行はデフォルトで可能だが、認証つきは apache の設定ファイルの変更が必要。WebCT をインストールしなおしたらこれもなおしておく必要有り。

 <Directory ${WEBCT}/webct/server/cgi-bin>
 #    AllowOverride None
     AllowOverride AuthConfig
     Options ExecCGI
     order allow,deny
     allow from all
 </Directory>

** WebCT ID からデザイナになっているコースIDを得る [#x4fc5019]

 $ cd ${WEBCT}/webct/webct/generic/api/
 $ ./webctdb find global x <u>foo</u> "," user_type
 Success: WebCT ID=foo,First Name=Taro,Last Name=Joho,Courses=C1;D:C2;S

;D がついてるのが、デザイナになっているコース。S は学生。


** コースIDからコースの名称を得る [#q66fb46e]

 ${WEBCT}/webct/webct/courses/<font
color="red">course_id</font>/database/course_info/course_listing_description
 ${WEBCT}/webct/webct/courses/color="red">course_id/database/course_info/course_listing_description

に直接書いてある。


** エントリーページを変更する [#rb6eb775]

${WEBCT}/webct/webct/generic/public/templates/ja_template.html を編集する。イメージファイルを使いたい場合は、${WEBCT}/webct/user/site-files/ に置いといて、img="/site-files/XXX" と指定する。


** API を利用してコースへ学生を一括登録 [#e51429da]

webctdb update を使って、スクリプトベースで学生をコースへ登録することはできる。しかしこの際、既に何らかのコースへ登録されている学生の場合、新しく登録するコースも含めて全てのコースを指定しなくてはならないことに注意が必要である。

既に登録されているコースの情報は webctdb find を使って取得することができる。

 $ cd ${WEBCT}/webct/webct/generic/api/
 $ ./webctdb find global x <u>foo</u> "," user_type
 Success: WebCT ID=foo,First Name=Taro,Last Name=Joho,Courses=C1;D:C2;S

としてC1, C2に所属していることがわかり、これにC3なるコースへ追加登録するには

 $ ./webctdb update global x <u>foo</u> "WebCT ID=foo,First Name=Taro,Last Name=Joho,Courses=C1;D:C2;S;C3;S" ","

とする。或は名前は省略して

 $ ./webctdb update global x <u>foo</u> "WebCT ID=foo,Courses=C1;D:C2;S;C3;S" ","

としてもよい。

これらを考慮して、学生の一括登録をできるようにした perl スクリプトを以下に置く。 一応いろんな場面を想定してエラー処理を入れている。オプションに -html をつけると、メッセージを HTML 形式で出力する。

- &attachref(addstudent.pl.txt);

福井大学山川先生のスクリプトもある。こちらは非常に簡潔。

- &attachref(reg_course.txt);


** API を利用してコースから学生を削除 [#j255d339]

 $ cd ${WEBCT}/webct/webct/generic/api/
 $ ./webctdb update global x "WebCT ID=foo,Courses=XXXXX" ","
 $ ./webctdb delete student YYYY foo

と言うように2ステップ必要。XXXXX には既登録コースから削除したいコースを外したものを指定。YYYY には削除したいコースを指定。

3.6x では update で Courses=_DELETE_ が効かない。fileupdate であればOK。バグか?


** 3.8 に日本語コード自動変換機能を追加 [#e715c3a0]

- コードコンバータの [[imdkcv:http://www.d2.dion.ne.jp/~imady/freesoft/imdkcv/]] をインストール。
- 以下のファイルを patchlib.ph と言う名前で、webct の perl のインクルードパスに保存。(例えば $webctdir/webct/perl/lib/perl5/5.6.1/)
-- &attachref(patchlib.ph.txt);
- 以下の行を $webctdir/webct/webct/generic/lib/dbm_upload_util.ph の 286 行目に追加。
       require "patchlib.ph";
       pal_upload_single_file ( $tempfile ) if  ( $content_type =~ /^text\// );
- 以下の行を $webctdir/webct/webct/generic/lib/dbm_zip_util.ph の 249 行目に追加。
       require "patchlib.ph";
       pal_convert_directory ( $temp_dir );

以上。この瞬間から、WebCT にアップロードされる全てのテキストファイルが自動的にUTF-8に変換されます。また、myFiles で unzip 操作を行うと、展開されるファイルのうち html, htm, txt の拡張子を持つものが全て UTF-8 に変換されます。

変換した作業内容が /tmp/quickpatch.log に記録されるようになっています。

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS