河野です。
白井先生らのアドバイスや改良を参考に、課題モジュールで「単一ファイルのアップロード」や「高度なファイルのアップロード」で提出された学生のファイルを、一括してダウンロードする機能を改良しました。今回は、「オンライン課題」もダウンロードできるようにしました。
なお、あとで書きますが、動作に若干問題がある部分があります。ご注意ください。
今回は、2つパッチがあります。Moodle 1.9.2のオフィシャルリリース(Build: 20080711)のパッチと、三重大学版Moodle 1.9.2(Build: 20080723)へのパッチです。これは、三重大学版にはすでに以前公開した改良が適用されているためです。
利用するには、次のようにしてください。
- 添付している「lib.php.patch.tgz」をダウンロードして、mod/assignmentで解凍する。
- 「lib.php.orig.diff」と「lib.php.moodle19.diff」というファイルができあがる。
- オリジナルのMoodle 1.9.2 を利用している場合は、「lib.php.orig.diff」を「lib.php」に対してパッチを適用する。
- 三重大学版Moodle 1.9.2 を利用している場合は、「lib.php.moodle19.diff」を「lib.php」に対してパッチを適用する。
- オリジナルのMoodleの場合は、日本語の言語パック(例えば lang/ja_utf8/)のmoodle.phpの最後に次のような内容を、追記する。
$string['downloadallassignment'] = '全ての課題をダウンロードする';
利用方法は、以前公開したのと同じです。提出課題を確認する画面で、右上にある「すべてのコース評定を表示する」の下に「すべての課題をダウンロードする」というリンクがあらわれるので、クリックすれば、課題を一括してダウンロードできます。
ダウンロードされるファイルの名前は、「20080916_第○会の課題.zip」というように、「ダウンロードした日付_課題の名前.zip」となります。ダウンロードしたファイルを展開すると、ユーザ名ごとのフォルダの中に、ユーザが提出したファイルがあります。オンライン課題の場合は、「ユーザ名.txt」というファイルが作られ、その中に入力した内容が書かれています。
最後に、動作上の問題点ですが、現在のところWindows XP上でIE6,7とFirefox3.0で動作を確認しています。Google Chromeでは、ダウンロードされるファイル名の日本語部分が文字化けします(圧縮された内容は問題ありません)。
また、なぜファイル名の最初にダウンロードした日付を入れたかという点ですが、白井先生のように、最初は「課題の名前.zip」としようと思ったのですが、「第○回」という課題名の場合、ZIPファイルの名前が「○回」となってしまう問題が発生しました。ちょっと改善策が思いつかなかったため、今回のような仕様になっています。この点について、アドバイスをいただけると幸いです。