Example #1
0
/**
 * Returns a json array
 *
 * @param unknown $output
 */
function attendance_json_array($output)
{
    // Verify that parameter is OK. Output should not be null.
    if (!$output) {
        attendance_json_error('Invalid parameters for encoding json. output is null.');
    }
    $output = array('error' => '', 'values' => $output);
    attendance_json_output(json_encode($output));
}
        /* create url for link in log screen
         * need to set grouptype to 0 to allow take attendance page to be called
         * from report/log page */
        // 		$params = array(
        // 				'sessionid' => $this->pageparams->sessionid,
        // 				'grouptype' => 0);
        // 		// Log the change.
        // 		$event = \mod_attendance\event\attendance_taken_by_student::create(array(
        // 				'objectid' => $this->id,
        // 				'context' => $this->context,
        // 				'other' => $params));
        // 		$event->
        //      ('course_modules', $this->cm);
        // 		$event->add_record_snapshot('attendance_sessions', $session);
        // 		$event->add_record_snapshot('attendance_log', $record);
        // 		$event->trigger();
        if ($logid && $updaterecord) {
            attendance_json_error('1');
        } else {
            attendance_json_error('0');
        }
        break;
        // 		case 'bringqrcode':
        // 			require_once $CFG->dirroot . '/mod/attendance/lib.php';
        // 			$context = optional_param ( 'context', null , PARAM_RAW_TRIMMED );
        // 			$filearea = optional_param ( 'filearea', null , PARAM_RAW_TRIMMED );
        // 			$filename = optional_param ( 'filename', null , PARAM_RAW_TRIMMED );
        // 			attendance_pluginfile($context, $filearea, $filename);
        // 		break;
}
//end of actions
Example #3
0
require_once $CFG->libdir . '/accesslib.php';
global $CFG, $DB, $OUTPUT, $PAGE, $USER;
$action = required_param('action', PARAM_ALPHA);
$username = required_param('username', PARAM_RAW_TRIMMED);
$password = required_param('password', PARAM_RAW_TRIMMED);
if (!($user = authenticate_user_login($username, $password))) {
    attendance_json_error('Invalid username or password');
}
// This is the correct way to fill up $USER variable
// complete_user_login($user);
switch ($action) {
    case 'login':
        if (!$user) {
            attendance_json_error('Invalid username or password');
        } else {
            attendance_json_error('Valid login');
        }
        break;
    case 'sessions':
        $sqlgetsessions = "SELECT sess.id AS sessionid, course.fullname AS coursename, course.id AS courseid,\n\t\t\t\t\t\t\tsess.description AS description, FROM_UNIXTIME(sess.sessdate) AS time \n\t\t\t\t\t\t\tFROM  {attendance_sessions} AS sess\n\t\t\t\t\t\t\tINNER JOIN {attendance} AS att ON (att.id= sess.attendanceid )\n\t\t\t\t\t\t\tINNER JOIN {course} AS course ON ( course.id = att.course )\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tcourse.id IN \n\t\t\t\t\t\t\t\t\t(SELECT course FROM \n\t\t\t\t\t\t\t\t\t(SELECT c.id AS course\n\t\t\t\t\t\t\t\t\tFROM {user} AS u\n\t\t\t\t\t\t\t\t\tINNER JOIN {role_assignments} AS ra ON (ra.userid = u.id)\n\t\t\t\t\t\t\t\t\tINNER JOIN {context} AS ct ON (ct.id = ra.contextid)\n\t\t\t\t\t\t\t\t\tINNER JOIN {course} AS c ON (c.id = ct.instanceid)\n\t\t\t\t\t\t\t\t\tINNER JOIN {role} AS r ON (r.id = ra.roleid)\t\n\t\t\t\t\t\t\t\t\tWHERE u.id= ? ) as courses)\n\t\t\t\t\t\t\tAND \n\t\t\t\t\t\t\tsess.id NOT IN\n\t\t\t\t\t\t\t\t( SELECT takensessions FROM (\n\t\t\t\t\t\t\t\t\tSELECT sess.id AS takensessions FROM mdl_attendance_log  AS log\n\t\t\t\t\t\t\t\t\tINNER JOIN mdl_user AS users ON ( users.id = log.studentid )\n\t\t\t\t\t\t\t\t\tINNER JOIN mdl_attendance_sessions AS sess ON (sess.id = log.sessionid)\n\t\t\t\t\t\t\t\t\tINNER JOIN mdl_attendance AS att ON (att.id= sess.attendanceid )\n\t\t\t\t\t\t\t\t\tINNER JOIN mdl_course AS course ON ( course.id = att.course )\n\t\t\t\t\t\t\t\t\tWHERE users.id = ? ) AS taken)\n\t\t\t\t\t\t\tAND FROM_UNIXTIME(sess.sessdate) >= NOW()\n\t\t\t\t\t\t\tORDER BY FROM_UNIXTIME(sess.sessdate) ASC\n\t\t\t\t";
        //missing DateADD in case you want to take attendance within a margin of time
        $sessions = $DB->get_recordset_sql($sqlgetsessions, array($user->id, $user->id));
        //var_dump($sessions);
        if (!$sessions) {
            $output = array();
            $output[] = 0;
        } else {
            foreach ($sessions as $obj) {
                $output[] = $obj;
            }
        }