いつもお世話になっております。村上です。
コロナの影響で年度初めの作業が今にシフトしており、
Moodleの作業に関して問い合わせをさせていただいており
申し訳なく思っております。
履修者登録情報が確定して、お試しで自己登録されていた
学生をコースから登録解除する必要があります。
テスト環境では動作しており、その情報を元にコースのユーザ削除作業を
行う予定でしたが、なぜか本番環境では同じ方法で作業しようとしても
うまく行かなくて困っております。
本番環境では構築者により、一部のLinuxのサービスが落とされていますが、
Moodleの動作環境はクリアしております。
1.フラットファイルの書式に基づいてファイル作成。
以前、Yoshida様が対応されていた記載のソースファイルの変更を実施。
https://moodle.org/mod/forum/discuss.php?d=329278#p1324710
2.ファイルロケーションで任意のパスとファイル名を記載して
フラットファイルの記述情報を書き込む。
例えば、/var/www/moodledata/flatfile.txt
3.cron.phpにより、フラットファイル処理が実行されて
ユーザがコースから登録解除される。
4.フラットファイルで指定したファイルが削除される。
1~4で対応予定でしたが、3でcron.phpが実行された際に
ファイルロケーションのファイルを削除がされない形になっております。
フラットファイルを動作するにあたり、何か動作する条件はありますでしょうか?
またログが出力できればエラーから追跡出来るのですが、そういった機能はありますでしょうか?
フラットファイルでなくてもコース解除を一括で出来ればいいのですが
勉強不足でフラットファイルによる削除しかうまく行っておりません。
以上、宜しくお願い致します。
「ファイルロケーションのファイルを削除がされない形になっております」とありますが、これはユーザ一括登録解除に使用したテキストファイルが自動的に削除されないということでしょうか?
> フラットファイルを動作するにあたり、何か動作する条件はありますでしょうか?
定期的にMoodle cronを動作させる必要があります。
念のため、以下の例のようなコマンドラインでのMoodle cronの実行をご確認ください。
# php /var/wwww/html/admin/cli/cron.php
> またログが出力できればエラーから追跡出来るのですが、そういった機能はありますでしょうか?
現在のところ、フラットファイル実行に関するログ出力機能は実装されていないようです。
Moodle 3.8.3+ (Build: 20200522) でフラットファイルによるユーザ一括登録解除を試してみましたが、プログラム修正前および修正後ともに正常動作しないようです。
代わりに以下の手順で手動登録解除されてはいかがでしょうか。
- ユーザを一括登録解除したいコースに編集権限のある教師またはサイト管理者として入る。
- 「管理 > コース管理 > ユーザ > 登録済みユーザ」に移動する。
- 検索テキスト入力欄の下向き▼をクリックする。
- 「登録方法: 自己登録 (学生)」を選択する。
- 表示された学生ユーザを選択する。
- 「選択したユーザに対して ...」プルダウンメニューで「自己登録 > 選択したユーザ登録を削除する」を選択する。
- 「ユーザを登録解除する」ボタンをクリックする。