Index: moodle/mod/lamslesson/lib.php =================================================================== diff -u -r82b05bec226a5e8a2e57f35727aefe8b8a3d2fad -rf33b561f38d98d71de239a1721f48dfc83bc738c --- moodle/mod/lamslesson/lib.php (.../lib.php) (revision 82b05bec226a5e8a2e57f35727aefe8b8a3d2fad) +++ moodle/mod/lamslesson/lib.php (.../lib.php) (revision f33b561f38d98d71de239a1721f48dfc83bc738c) @@ -53,6 +53,8 @@ define('LAMSLESSON_PARAM_AUTHOR_METHOD', 'author'); define('LAMSLESSON_PARAM_MONITOR_METHOD', 'monitor'); define('LAMSLESSON_PARAM_LEARNER_METHOD', 'learner'); +define('LAMSLESSON_PARAM_SINGLE_PROGRESS_METHOD', 'singleStudentProgress'); +define('LAMSLESSON_PARAM_PROGRESS_METHOD', 'studentProgress'); define('LAMSLESSON_PARAM_CUSTOM_CSV', 'customCSV'); define('LAMSLESSON_LD_SERVICE', '/services/xml/LearningDesignRepository'); define('LAMSLESSON_LESSON_MANAGER', '/services/xml/LessonManager'); @@ -317,22 +319,19 @@ if (empty($array['@']['resourceId'])) { // it's a folder $folder_name = preg_replace("/'/", "$1\'", $array['@']['name']); - $output .= "{type:'Text', label:'" . $folder_name . "',id:'0'"; + $output .= "{type:'Text', label:'" . $folder_name . "',id:0"; if (empty($array['#']['LearningDesign']) && empty($array['#']['Folder'])) { - $output .= ", children: [{type:'HTML', html:'-" . get_string('empty', 'lamslesson') . "-', id:'0'}]}"; + $output .= ",expanded:0,children:[{type:'HTML',html:'-" . get_string('empty', 'lamslesson') . "-', id:0}]}"; return $output; } else { - $output .= ", children: ["; + $output .= ",children:["; } if (!empty($array['#']['LearningDesign'])) { $lds = $array['#']['LearningDesign']; for($i=0; $ilamslesson_serverid, $CFG->lamslesson_serverkey) || $CFG->lamslesson_serverid == "") { + print_error(get_string('notsetup', 'lamslesson')); + return NULL; + } + + $datetime = date("F d,Y g:i a"); + $datetime_encoded = urlencode($datetime); + + $plaintext = $datetime.$username.$CFG->lamslesson_serverid.$CFG->lamslesson_serverkey; + $hashvalue = sha1(strtolower($plaintext)); + + $request = "$CFG->lamslesson_serverurl" . LAMSLESSON_LESSON_MANAGER . "?method=" . LAMSLESSON_PARAM_SINGLE_PROGRESS_METHOD . "&serverId=" . $CFG->lamslesson_serverid . "&datetime=" . $datetime_encoded . "&hashValue=" . $hashvalue ."&lsId=" . $ldid . "&courseId=" . $courseid . "&progressUser=" . $username . "&username=" . $username; + + // GET call to LAMS + + $xml = file_get_contents($request); + + $xml_array = xmlize($xml); + + $response = $xml_array['LessonProgress']['#']; + $learnerProgress = $response['LearnerProgress']['0']; + + // print_r($learnerProgress['@']['activitiesCompleted']); + // die(); + + + return $learnerProgress['@']; +} + + +//returns the moodle completion state for a user) +function lamslesson_get_moodle_completion($course,$cm) { + + $completion = new completion_info($course); + return $completion->get_data($cm); + +} + +function lamslesson_set_as_completed($cm,$course,$lamslesson) { + // Update completion state + $completion = new completion_info($course); + if ($completion->is_enabled($cm) && $lamslesson->completionfinish) { + lamslesson_set_completion_state($cm,$completion,COMPLETION_COMPLETE); + } +} + +function lamslesson_set_as_incomplete($cm,$course,$lamslesson) { + // Update completion state + $completion = new completion_info($course); + if ($completion->is_enabled($cm) && $lamslesson->completionfinish) { + lamslesson_set_completion_state($cm,$completion,COMPLETION_INCOMPLETE); + } +} + +function lamslesson_set_completion_state($cm,$completion,$state) { + //Update completion state + + switch ($state) { + case COMPLETION_COMPLETE: + + $completion->update_state($cm, COMPLETION_COMPLETE); + break; + + default: + $completion->update_state($cm, COMPLETION_INCOMPLETE); + break; + } + + +} + + +