CE4 管理者用 Tips

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

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

WebCT サーバ上で認証つきの CGI を使う

${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を得る

$ 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からコースの名称を得る

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

に直接書いてある。

エントリーページを変更する

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

API を利用してコースへ学生を一括登録

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 形式で出力する。

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

API を利用してコースから学生を削除

$ 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 に日本語コード自動変換機能を追加

  • コードコンバータの imdkcv をインストール。
  • 以下のファイルを patchlib.ph と言う名前で、webct の perl のインクルードパスに保存。(例えば $webctdir/webct/perl/lib/perl5/5.6.1/)
  • 以下の行を $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 に記録されるようになっています。


添付ファイル: filepatchlib.ph.txt 585件 [詳細] filereg_course.txt 557件 [詳細] fileaddstudent.pl.txt 584件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-12-03 (水) 08:14:50 (3247d)