예제 #1
0
            }
        }
    }
}
//
// If no sco was found get the first of udutu package
//
if (!isset($sco)) {
    $scoes = get_records_select('udutu_scoes', 'udutu=' . $udutu->id . " AND launch<>''", 'id ASC');
    $sco = current($scoes);
}
if ($sco->udututype == 'asset') {
    $attempt = udutu_get_last_attempt($udutu->id, $USER->id);
    $element = $udutu->version == 'udutu_13' ? 'cmi.completion_status' : 'cmi.core.lesson_status';
    $value = 'completed';
    $result = udutu_insert_track($USER->id, $udutu->id, $sco->id, $attempt, $element, $value);
}
//
// Forge SCO URL
//
$connector = '';
$version = substr($udutu->version, 0, 4);
if (isset($sco->parameters) && !empty($sco->parameters) || $version == 'AICC') {
    if (stripos($sco->launch, '?') !== false) {
        $connector = '&';
    } else {
        $connector = '?';
    }
    if (isset($sco->parameters) && !empty($sco->parameters) && $sco->parameters[0] == '?') {
        $sco->parameters = substr($sco->parameters, 1);
    }
function udutu_seq_set($what, $scoid, $userid, $attempt = 0, $value = 'true')
{
    /// set passed activity to active or not
    if ($value == false) {
        delete_record('udutu_scoes_track', 'scoid', $scoid, 'userid', $userid, 'element', $what);
    } else {
        $sco = udutu_get_sco($scoid);
        udutu_insert_track($userid, $sco->udutu, $sco->id, 0, $what, $value);
    }
}
예제 #3
0
            error("Course Module ID was incorrect");
        }
    } else {
        error('A required parameter is missing');
    }
}
require_login($course->id, false, $cm);
//if (confirm_sesskey() && (!empty($scoid))) {
$result = true;
$request = null;
//if (has_capability('mod/udutu:savetrack', get_context_instance(CONTEXT_MODULE,$cm->id))) {
foreach ($_POST as $element => $value) {
    $element = str_replace('__', '.', $element);
    if (substr($element, 0, 3) == 'cmi') {
        $netelement = preg_replace('/\\.N(\\d+)\\./', "\\.\$1\\.", $element);
        $result = udutu_insert_track($USER->id, $udutu->id, $scoid, $attempt, $netelement, $value) && $result;
    }
    if (substr($element, 0, 15) == 'adl.nav.request') {
        // udutu 2004 Sequencing Request
        require_once 'datamodels/sequencinglib.php';
        $search = array('@continue@', '@previous@', '@\\{target=(\\S+)\\}choice@', '@exit@', '@exitAll@', '@abandon@', '@abandonAll@');
        $replace = array('continue_', 'previous_', '\\1', 'exit_', 'exitall_', 'abandon_', 'abandonall');
        $action = preg_replace($search, $replace, $value);
        if ($action != $value) {
            // Evaluating navigation request
            $valid = udutu_sequencing_overall($scoid, $USER->id, $action);
            $valid = 'true';
            // Set valid request
            $search = array('@continue@', '@previous@', '@\\{target=(\\S+)\\}choice@');
            $replace = array('true', 'true', 'true');
            $matched = preg_replace($search, $replace, $value);
예제 #4
0
                         $id = udutu_insert_track($USER->id, $udutu->id, $sco->id, $attempt, $element, $value);
                     }
                 }
             }
             if ($mode == 'browse' && $initlessonstatus == 'not attempted') {
                 $lessonstatus = 'browsed';
                 $id = udutu_insert_track($USER->id, $udutu->id, $sco->id, $attempt, 'cmi.core.lesson_status', 'browsed');
             }
             if ($mode == 'normal') {
                 if ($lessonstatus == 'completed') {
                     if (!empty($sco->masteryscore) && !empty($score) && $score >= $sco->masteryscore) {
                         $lessonstatus = 'passed';
                     } else {
                         $lessonstatus = 'failed';
                     }
                     $id = udutu_insert_track($USER->id, $udutu->id, $sco->id, $attempt, 'cmi.core.lesson_status', $lessonstatus);
                 }
             }
         }
         echo "error = 0\nerror_text = Successful\n";
     } else {
         if ($status == 'Terminated') {
             echo "error = 1\nerror_text = Terminated\n";
         } else {
             echo "error = 1\nerror_text = Not Initialized\n";
         }
     }
     break;
 case 'putcomments':
     if ($status == 'Running') {
         echo "error = 0\nerror_text = Successful\n";