本文整理汇总了PHP中Exercise::validate方法的典型用法代码示例。如果您正苦于以下问题:PHP Exercise::validate方法的具体用法?PHP Exercise::validate怎么用?PHP Exercise::validate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Exercise
的用法示例。
在下文中一共展示了Exercise::validate方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1:
$exercise->setShowAnswers($_REQUEST['showAnswers']);
$exercise->setStartDate(mktime($_REQUEST['startHour'], $_REQUEST['startMinute'], 0, $_REQUEST['startMonth'], $_REQUEST['startDay'], $_REQUEST['startYear']));
if (isset($_REQUEST['useEndDate']) && $_REQUEST['useEndDate']) {
$exercise->setEndDate(mktime($_REQUEST['endHour'], $_REQUEST['endMinute'], 0, $_REQUEST['endMonth'], $_REQUEST['endDay'], $_REQUEST['endYear']));
} else {
$exercise->setEndDate(null);
}
if (isset($_REQUEST['useTimeLimit']) && $_REQUEST['useTimeLimit']) {
$exercise->setTimeLimit($_REQUEST['timeLimitMin'] * 60 + $_REQUEST['timeLimitSec']);
} else {
$exercise->setTimeLimit(0);
}
$exercise->setAttempts($_REQUEST['attempts']);
$exercise->setAnonymousAttempts($_REQUEST['anonymousAttempts']);
$exercise->setQuizEndMessage($_REQUEST['quizEndMessage']);
if ($exercise->validate()) {
if ($insertedId = $exercise->save()) {
if (is_null($exId)) {
$dialogBox->success(get_lang('Exercise added'));
$eventNotifier->notifyCourseEvent("exercise_added", claro_get_current_course_id(), claro_get_current_tool_id(), $insertedId, claro_get_current_group_id(), "0");
$exId = $insertedId;
} else {
$dialogBox->success(get_lang('Exercise modified'));
$eventNotifier->notifyCourseEvent("exercise_updated", claro_get_current_course_id(), claro_get_current_tool_id(), $insertedId, claro_get_current_group_id(), "0");
}
$displaySettings = true;
} else {
// sql error in save() ?
$cmd = 'rqEdit';
}
} else {
示例2: import_exercise
/**
* Main function to import an exercise.
*
* @param string $file path of the file
* @param array $backlog_message
*
* @return the id of the created exercise or false if the operation failed
*/
function import_exercise($file, &$backlog)
{
global $exercise_info;
global $element_pile;
global $non_HTML_tag_to_avoid;
global $record_item_body;
// used to specify the question directory where files could be found in relation in any question
global $questionTempDir;
// get required table names
$tbl_cdb_names = get_module_course_tbl(array('qwz_exercise', 'qwz_question'), claro_get_current_course_id());
$tbl_quiz_exercise = $tbl_cdb_names['qwz_exercise'];
$tbl_quiz_question = $tbl_cdb_names['qwz_question'];
// paths
$baseWorkDir = get_path('rootSys') . get_conf('tmpPathSys') . 'upload/';
// create temp dir for upload
if (!file_exists($baseWorkDir)) {
claro_mkdir($baseWorkDir, CLARO_FILE_PERMISSIONS);
}
$uploadDir = claro_mkdir_tmp($baseWorkDir);
// this function should return the dir name and not the full path ...
$uploadPath = str_replace($baseWorkDir, '', $uploadDir);
// set some default values for the new exercise
$exercise_info = array();
$exercise_info['name'] = preg_replace('/.zip$/i', '', $file);
$exercise_info['description'] = '';
$exercise_info['question'] = array();
// create parser and array to retrieve info from manifest
$element_pile = array();
//pile to known the depth in which we are
$module_info = array();
//array to store the info we need
// if file is not a .zip, then we cancel all
if (!preg_match('/.zip$/i', $_FILES['uploadedExercise']['name'])) {
$backlog->failure(get_lang('You must upload a zip file'));
return false;
}
//unzip the uploaded file in a tmp directory
if (!get_and_unzip_uploaded_exercise($baseWorkDir, $uploadPath)) {
$backlog->failure(get_lang('Upload failed'));
return false;
}
// find the different manifests for each question and parse them.
$exerciseHandle = opendir($uploadDir);
$question_number = 0;
$file_found = false;
// parse every subdirectory to search xml question files
while (false !== ($file = readdir($exerciseHandle))) {
if (is_dir($uploadDir . '/' . $file) && $file != "." && $file != "..") {
//find each manifest for each question repository found
$questionHandle = opendir($uploadDir . '/' . $file);
while (false !== ($questionFile = readdir($questionHandle))) {
if (preg_match('/.xml$/i', $questionFile)) {
list($parsingBacklog, $success) = parse_file($uploadDir, $file, $questionFile);
$backlog->append($parsingBacklog);
$file_found = true;
}
}
} elseif (preg_match('/.xml$/i', $file)) {
list($parsingBacklog, $success) = parse_file($uploadDir, '', $file);
$backlog->append($parsingBacklog);
$file_found = true;
}
// else ignore file
}
if (!$file_found) {
$backlog->failure(get_lang('No XML file found in the zip'));
return false;
}
//---------------------
//add exercise in tool
//---------------------
//1.create exercise
$exercise = new Exercise();
$exercise->setTitle($exercise_info['name']);
$exercise->setDescription($exercise_info['description']);
if ($exercise->validate()) {
$exercise_id = $exercise->save();
} else {
$backlog->failure(get_lang('There is an error in exercise data of imported file.'));
return false;
}
ksort($exercise_info['question'], SORT_NUMERIC);
//For each question found...
foreach ($exercise_info['question'] as $key => $question_array) {
//2.create question
$question = new Qti2Question();
$question->import($question_array);
if ($question->validate()) {
// I need to save the question after the answer because I need question id in answers
$question_id = $question->save();
//3.create answers
$question->setAnswer();
//.........这里部分代码省略.........