📄 format.php
字号:
<?php // Based on default.php, included by ../import.php/** * @package questionbank * @subpackage importexport */class qformat_xhtml extends qformat_default { function provide_export() { return true; }function repchar( $text ) { // escapes 'reserved' characters # = ~ { ) and removes new lines $reserved = array( '#','=','~','{','}',"\n","\r" ); $escaped = array( '\#','\=','\~','\{','\}',' ','' ); return str_replace( $reserved, $escaped, $text ); }function writequestion( $question ) { // turns question into string // question reflects database fields for general question and specific to type // if a category switch, just ignore if ($question->qtype=='category') { return ''; } // initial string; $expout = ""; $id = $question->id; // add comment and div tags $expout .= "<!-- question: $id name: $question->name -->\n"; $expout .= "<div class=\"question\">\n"; // add header $expout .= "<h3>$question->name</h3>\n"; // format and add question text $questiontext = $question->questiontext; $format = $question->questiontextformat; $formatted_text = format_text( $questiontext, $format ); $expout .= "<p class=\"questiontext\">$formatted_text</p>\n"; // selection depends on question type switch($question->qtype) { case TRUEFALSE: $st_true = get_string( 'true','quiz' ); $st_false = get_string( 'false','quiz' ); $expout .= "<ul class=\"truefalse\">\n"; $expout .= " <li><input name=\"quest_$id\" type=\"radio\" value=\"$st_true\" />$st_true</li>\n"; $expout .= " <li><input name=\"quest_$id\" type=\"radio\" value=\"$st_false\" />$st_false</li>\n"; $expout .= "</ul>\n"; break; case MULTICHOICE: $expout .= "<ul class=\"multichoice\">\n"; foreach($question->options->answers as $answer) { $ans_text = $this->repchar( $answer->answer ); if ($question->options->single) { $expout .= " <li><input name=\"quest_$id\" type=\"radio\" value=\"$ans_text\" />$ans_text</li>\n"; } else { $expout .= " <li><input name=\"quest_$id\" type=\"checkbox\" value=\"$ans_text\" />$ans_text</li>\n"; } } $expout .= "</ul>\n"; break; case SHORTANSWER: $expout .= "<ul class=\"shortanswer\">\n"; $expout .= " <li><input name=\"quest_$id\" type=\"text\" /></li>\n"; $expout .= "</ul>\n"; break; case NUMERICAL: $expout .= "<ul class=\"numerical\">\n"; $expout .= " <li><input name=\"quest_$id\" type=\"text\" /></li>\n"; $expout .= "</ul>\n"; break; case MATCH: $expout .= "<ul class=\"match\">\n"; // build answer list $ans_list = array(); foreach($question->options->subquestions as $subquestion) { $ans_list[] = $this->repchar( $subquestion->answertext ); } shuffle( $ans_list ); // random display order // build drop down for answers $dropdown = "<select name=\"quest_$id\">\n"; foreach($ans_list as $ans) { $dropdown .= "<option value=\"$ans\">$ans</option>\n"; } $dropdown .= "</select>\n"; // finally display foreach($question->options->subquestions as $subquestion) { $quest_text = $this->repchar( $subquestion->questiontext ); $expout .= " <li>$quest_text</li>\n"; $expout .= $dropdown; } $expout .= "</ul>\n"; break; case DESCRIPTION: break; case MULTIANSWER: $expout .= "<!-- CLOZE type is not supported -->\n"; break; default: notify("No handler for qtype $question->qtype for GIFT export" ); } // close off div $expout .= "</div>\n\n\n"; return $expout;}function presave_process( $content ) { // override method to allow us to add xhtml headers and footers global $CFG; // get css bit $css_lines = file( "$CFG->dirroot/question/format/xhtml/xhtml.css" ); $css = implode( ' ',$css_lines ); $xp = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n"; $xp .= " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"; $xp .= "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"; $xp .= "<head>\n"; $xp .= "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />\n"; $xp .= "<title>Moodle Quiz XHTML Export</title>\n"; $xp .= $css; $xp .= "</head>\n"; $xp .= "<body>\n"; $xp .= "<form action=\"...REPLACE ME...\" method=\"post\">\n\n"; $xp .= $content; $xp .= "<p class=\"submit\">\n"; $xp .= " <input type=\"submit\" />\n"; $xp .= "</p>\n"; $xp .= "</form>\n"; $xp .= "</body>\n"; $xp .= "</html>\n"; return $xp;}function export_file_extension() { return ".html";}}?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -