/** * Define (add) particular steps this activity can have */ protected function define_my_steps() { jclic_normalize_date(); $this->add_step(new backup_jclic_activity_structure_step('jclic_structure', 'jclic.xml')); }
/** * Get user activity summary * * @return object session object with score, totaltime, activities done and solved and attempts information */ function jclic_get_sessions_summary($jclicid, $userid) { global $DB; jclic_normalize_date(); $sessions_summary = new stdClass(); $sessions_summary->attempts = ''; $sessions_summary->score = ''; $sessions_summary->totaltime = ''; $sessions_summary->starttime = ''; $sessions_summary->done = ''; $sessions_summary->solved = ''; if ($rs = $DB->get_record_sql("SELECT COUNT(*) AS attempts, AVG(t.qualification) AS qualification, SUM(t.totaltime) AS totaltime, MAX(t.starttime) AS starttime\n FROM (SELECT AVG(ja.qualification) AS qualification, SUM(ja.total_time) AS totaltime, MAX(js.session_datetime) AS starttime\n FROM {jclic} j, {jclic_sessions} js, {jclic_activities} ja\n WHERE j.id=js.jclicid AND js.user_id='{$userid}' AND js.jclicid={$jclicid} AND ja.session_id=js.session_id\n GROUP BY js.session_id) t")) { $sessions_summary->attempts = $rs->attempts; $sessions_summary->score = round($rs->qualification, 0); $sessions_summary->totaltime = jclic_format_time($rs->totaltime); $sessions_summary->starttime = $rs->starttime; } if ($rs = $DB->get_record_sql("SELECT COUNT(*) as done\n FROM (SELECT DISTINCT ja.activity_name\n FROM {jclic} j, {jclic_sessions} js, {jclic_activities} ja\n WHERE j.id=js.jclicid AND js.user_id='{$userid}' AND js.jclicid={$jclicid} AND js.session_id=ja.session_id) t")) { $sessions_summary->done = $rs->done; } if ($rs = $DB->get_record_sql("SELECT COUNT(*) as solved\n FROM (SELECT DISTINCT ja.activity_name\n FROM {jclic} j, {jclic_sessions} js, {jclic_activities} ja\n WHERE j.id=js.jclicid AND js.user_id='{$userid}' AND js.jclicid={$jclicid} AND js.session_id=ja.session_id AND ja.activity_solved=1) t")) { $sessions_summary->solved = $rs->solved; } return $sessions_summary; }
$jclic_session->user_id = $beans[0]['PARAMS']['user']; $jclic_session->session_datetime = date('Y-m-d h:i:s', round($beans[0]['PARAMS']['time'] / 1000)); $jclic_session->session_id = 'X'; // @TODO: Review // $jclic_session->session_id=$beans[0]['PARAMS']['user'].'_'.$beans[0]['PARAMS']['time']; $jclic_session->project_name = $beans[0]['PARAMS']['project']; try { // ALTER TABLE m2jclic_sessions MODIFY (SESSION_DATETIME DATE null); // $params = array('jclicid'=>$jclic_session->jclicid, 'user_id'=>$jclic_session->user_id, // 'session_datetime'=>$jclic_session->session_datetime,'session_id'=>$jclic_session->session_id, // 'project_name'=>$jclic_session->project_name); // $sql = 'INSERT INTO {jclic_sessions} (jclicid, user_id, session_datetime, session_id, project_name) // VALUES (:jclicid,:user_id,:session_datetime,:session_id,:project_name)'; // $sql = 'INSERT INTO {jclic_sessions} (jclicid, user_id, session_datetime, session_id, project_name) // VALUES ('.$jclic_session->jclicid.','.$jclic_session->user_id.',\'2008-11-03 11:49:30\',\''.$jclic_session->session_id.'\',\''.$jclic_session->project_name.'\')'; jclic_normalize_date(); $sessionid = $DB->insert_record("jclic_sessions", $jclic_session); $jclic_session->id = $sessionid; $jclic_session->session_id = $sessionid; $DB->update_record("jclic_sessions", $jclic_session); } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; print_r($e); } if (!$DB->get_record('jclic_users', array('user_id' => $beans[0]['PARAMS']['user'] . ''))) { if ($user = $DB->get_record('user', array('id' => $beans[0]['PARAMS']['user'] . ''))) { $jclic_user = new stdClass(); $jclic_user->user_id = $beans[0]['PARAMS']['user']; $jclic_user->group_id = '1'; $jclic_user->user_name = $user->firstname . ' ' . $user->lastname; $DB->insert_record("jclic_users", $jclic_user);
/** * Define (add) particular steps this activity can have */ protected function define_my_steps() { jclic_normalize_date(); // JClic only has one structure step $this->add_step(new restore_jclic_activity_structure_step('jclic_structure', 'jclic.xml')); }