2014-02-20 28 views
0

我发送电子邮件,工作期间,当用户手动注册到当然,现在我可以发送电子邮件时用户注册什么,我想知道的是系统发送注册过期日期的电子邮件,所以如果我可以从数据库中获得适用于我的..,(任何其他方法可以得到这个insie注册联合也罚款)获得用户的注册日期和注册的给定用户ID给定的过程

这是我尝试传递此参数的地方

public function enrol_user(stdClass $instance, $userid, $roleid = NULL, $timestart = 0, $timeend = 0, $status = NULL, $recovergrades = NULL) { 
    global $DB; 

    $alreadyenroled = $DB->record_exists('user_enrolments', array('enrolid' => $instance->id, 'userid' => $userid)); 
    parent::enrol_user($instance, $userid, $roleid, $timestart, $timeend, $status, $recovergrades); 
    if (!$alreadyenroled && $instance->customint4) { 
     // Don't email immediately - give the admin a chance to remove users 
     // who were added by mistake 
     $this->queue_welcome_message($instance->id, $userid,$timestart,$timeend); 
    } 
} 

protected function queue_welcome_message($instanceid, $userid,$timestart,$timeend) { 
    global $DB; 

    if ($DB->record_exists('enrol_manual_email', array('instanceid' => $instanceid, 
                 'userid' => $userid,'ts' => $timestart,'te' => $timeend))) { 
     return; 
    } 

    $ins = new stdClass(); 
    $ins->instanceid = $instanceid; 
    $ins->userid = $userid; 
    ////edit lasitha 
    $ins->ts = $timestart; 
    $ins->te = $timeend; 
    $DB->insert_record('enrol_manual_email', $ins); 
} 

回答

0

此代码可以帮助我得到了我想要得到

$user_enroll_data = $DB->get_record('user_enrolments', array('enrolid'=>$instance->id, 'userid'=>$user->id)); 

$normal_st_date=date('Y-m-d', $user_enroll_data->timestart);//course start date 
$normal_end_date=date('Y-m-d',$user_enroll_data->timeend);//course end date 
2

要做到这一点,这样当你更新你的Moodle站点到一个新的版本,它不会打破,将创建新的本地插件,最好的办法(http://docs.moodle.org/dev/Local_plugins)。然后您可以利用Moodle的事件API(http://docs.moodle.org/dev/Events_API)的订阅“user_enrolled”事件。

您从事件API获得包括现场“timeend”(从表mdl_user_enrolments)数据为当招生将过期的时间戳。如果该字段为“0”,那么就意味着该注册将不会过期。如果是任何其他值,则可以拨打:

userdate($data->timeend, get_string('strftimedate')); 

将此格式设置为日期。

(请参阅'/lang/en/langconfig.php'以了解您可以使用的其他时间格式 - 另请注意,此日期将基于当前登录用户的时区 - 您可能需要使用'时区userdate'参数',如果你想确保它是接收用户的正确的时区)。

+0

感谢您的帮助..... – wordpresrox