本文整理汇总了PHP中student::set_from_data方法的典型用法代码示例。如果您正苦于以下问题:PHP student::set_from_data方法的具体用法?PHP student::set_from_data怎么用?PHP student::set_from_data使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类student
的用法示例。
在下文中一共展示了student::set_from_data方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: pm_update_student_enrolment
/**
* Notifies that students have not passed their classes via the notifications where applicable,
* setting enrolment status to failed where applicable
*
* @param int $pmuserid optional userid to update, default(0) updates all users
*/
function pm_update_student_enrolment($pmuserid = 0)
{
global $DB;
require_once elispm::lib('data/student.class.php');
require_once elispm::lib('notifications.php');
//look for all enrolments where status is incomplete / in progress and end time has passed
$select = 'completestatusid = :status AND endtime > 0 AND endtime < :time';
$params = array('status' => STUSTATUS_NOTCOMPLETE, 'time' => time());
if ($pmuserid) {
$select .= ' AND userid = :userid';
$params['userid'] = $pmuserid;
}
$students = $DB->get_recordset_select(student::TABLE, $select, $params);
if (!empty($students)) {
foreach ($students as $s) {
// Send notification, if enabled.
$sendnotification = !empty(elis::$config->local_elisprogram->notify_incompletecourse_user) ? true : false;
if ($sendnotification === true) {
$a = $DB->get_field(pmclass::TABLE, 'idnumber', array('id' => $s->classid));
$message = get_string('incomplete_course_message', 'local_elisprogram', $a);
$cuser = new user($s->userid);
$from = get_admin();
notification::notify($message, $cuser, $from);
}
//set status to failed
$s->completetime = time();
$s->completestatusid = STUSTATUS_FAILED;
$stu = new student($s->id);
$stu->set_from_data($s);
$stu->update();
}
}
return true;
}
示例2: class_enrolment_update
/**
* Performs class_enrolment update
* @throws moodle_exception If there was an error in passed parameters.
* @throws data_object_exception If there was an error creating the entity.
* @param array $data The incoming data parameter.
* @return array An array of parameters, if successful.
*/
public static function class_enrolment_update(array $data)
{
global $USER, $DB;
if (static::require_elis_dependencies() !== true) {
throw new moodle_exception('ws_function_requires_elis', 'local_datahub');
}
static $completestatuses = array('not completed' => STUSTATUS_NOTCOMPLETE, 'not_completed' => STUSTATUS_NOTCOMPLETE, 'notcompleted' => STUSTATUS_NOTCOMPLETE, 'failed' => 'STUSTATUS_FAILED', 'passed' => STUSTATUS_PASSED);
// Parameter validation.
$params = self::validate_parameters(self::class_enrolment_update_parameters(), array('data' => $data));
// Context validation.
$context = context_user::instance($USER->id);
self::validate_context($context);
$data = (object) $data;
// Parse class
if (empty($data->class_idnumber) || !($classid = $DB->get_field(pmclass::TABLE, 'id', array('idnumber' => $data->class_idnumber)))) {
throw new data_object_exception('ws_class_enrolment_update_fail_invalid_class', 'local_datahub', '', $data);
}
// Capability checking.
require_capability('local/elisprogram:class_enrol', \local_elisprogram\context\pmclass::instance($classid));
// Initialize version1elis importplugin for utility functions.
$importplugin = rlip_dataplugin_factory::factory('dhimport_version1elis');
$userparams = array();
$userid = $importplugin->get_userid_from_record($data, '', $userparams);
if ($userid == false) {
$a = new stdClass();
if (empty($userparams)) {
$a->userparams = '{empty}';
} else {
$a->userparams = '';
foreach ($userparams as $userfield => $uservalue) {
$subfield = strpos($userfield, '_');
$userfield = substr($userfield, $subfield === false ? 0 : $subfield + 1);
if (!empty($a->userparams)) {
$a->userparams .= ', ';
}
$a->userparams .= "{$userfield}: '{$uservalue}'";
}
}
throw new data_object_exception('ws_class_enrolment_update_fail_invalid_user', 'local_datahub', '', $a);
}
if (!($stuid = $DB->get_field(student::TABLE, 'id', array('classid' => $classid, 'userid' => $userid)))) {
throw new data_object_exception('ws_class_enrolment_update_fail_missing_enrolment', 'local_datahub', '', $data);
}
$stu = new student($stuid);
$stu->load();
$record = new stdClass();
$record->userid = $userid;
$record->classid = $classid;
if (isset($data->completestatus)) {
$completestatus = strtolower($data->completestatus);
if (isset($completestatuses[$completestatus])) {
$record->completestatusid = $completestatuses[$completestatus];
if ($record->completestatusid != STUSTATUS_NOTCOMPLETE) {
if (empty($stu->completetime) && !isset($data->completetime)) {
$record->completetime = rlip_timestamp();
}
}
} else {
throw new data_object_exception('ws_class_enrolment_update_fail_invalid_completestatus', 'local_datahub', '', $data);
}
}
if (isset($data->grade) && is_numeric($data->grade)) {
$record->grade = $data->grade;
}
if (isset($data->credits) && is_numeric($data->credits)) {
$record->credits = $data->credits;
}
if (isset($data->locked)) {
$record->locked = $data->locked ? 1 : 0;
}
if (isset($data->enrolmenttime)) {
if ($enrolmenttime = $importplugin->parse_date($data->enrolmenttime)) {
$record->enrolmenttime = $enrolmenttime;
} else {
throw new data_object_exception('ws_class_enrolment_update_fail_invalid_enrolmenttime', 'local_datahub', '', $data);
}
}
if (isset($data->completetime)) {
if ($completetime = $importplugin->parse_date($data->completetime)) {
$record->completetime = $completetime;
} else {
throw new data_object_exception('ws_class_enrolment_update_fail_invalid_completetime', 'local_datahub', '', $data);
}
}
$stu->set_from_data($record);
$stu->save();
// Respond.
if (!empty($stu->id)) {
return array('messagecode' => get_string('ws_class_enrolment_update_success_code', 'local_datahub'), 'message' => get_string('ws_class_enrolment_update_success_msg', 'local_datahub'), 'record' => $stu->to_array());
} else {
throw new data_object_exception('ws_class_enrolment_update_fail', 'local_datahub');
}
}