2017-04-11 12 views
0

プラグインがあるかどうかを知りたい、またはコースを完了するためにxxxx日付以降に接続していない場合は、何かmoodleユーザーに電子メールで通知する必要があります。開始時刻からコースへの接続時間を通知する方法

これをcronなどで自動的に行う方法はありますか?

ありがとうございました。

答えて

1

質問は2 in 1です。しばらくのうちにサインインしていないユーザーを識別する方法と、電子メールを送信する方法を尋ねています。私はそれに応じて部分的に答えるつもりです。これらはすべてcron経由で行うことができますが、Moodleを使用しないので、どのプラグインが利用できるか分かりません。

彼は180日以内にログオンしていないユーザーを特定するクエリの例ですが、ログインしていないユーザーは無視します。

SELECT * FROM mdl_user 
WHERE lastlogin < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 180 DAY)) 
AND lastlogin != 0 
AND lastaccess < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 180 DAY)) 
AND deleted = 0 

ここで電子メールビットです。 Googleでは、MoodleはPHPMailerをemail_to_user()関数として使用しています。 PHPでこれを使用する例:

email_to_user($toUser, $fromUser, $subject, $messageText, $messageHtml, '', '', true); 

$ TOUSERとFROMUSER $は電子メールアドレスではない、Moodleのユーザーオブジェクトでなければなりません。これらのオブジェクトを構築するためにクエリ結果をトラバースすることは、残されたすべてのことになります。

最終ヒント:クエリの各結果に基づいて、ユーザオブジェクトを取得するには、あなたがそのようget_record機能を使用することができます://ドキュメント:

$userObj = get_record("user", "id", $userID); 
+0

あなたがMoodleのデータ操作API(httpsを使用する必要があります。 moodle.org/dev/Data_manipulation_API)を使用して、上記の関数ではなくデータベースにアクセスします。例えば'$ userObj = $ DB-> get_record( 'user'、array( 'id' => $ userID));' –

+0

これはきれいです。共有してくれてありがとう、私はそれを研究し、私のポストを更新します!私はMoodleを使ったことは一度もありませんが、これを調べて興味をそそられました。 –

関連する問題