/** * Build questions using moodle serialized data. Used for reimport, i.e. from Moodle to Moodle. * Used to process data not supported by QTI and to improve performances. * * @param QtiImportSettings $data * @return object|null */ public function build_moodle(QtiImportSettings $settings) { $data = $settings->get_data(); $result = parent::build_moodle($settings); $a = reset($data->options->answers); $result->feedback = $this->format_text($a->feedback); return $result; }
/** * Build questions using the QTI format. Doing a projection by interpreting the file. * * @param QtiImportSettings $settings * @return object|null */ public function build_qti(QtiImportSettings $settings) { $item = $settings->get_reader(); $text = $this->to_cloze($item); $result = qtype_multianswer_extract_question($text); $result->resources = array(); $result->questiontextformat = FORMAT_HTML; $general_feedbacks = $this->get_general_feedbacks($item); $result->generalfeedback = implode('<br/>', $general_feedbacks); $result->name = $item->get_title(); $result->penalty = $this->get_penalty($item); return $result; }
static function factory(QtiImportSettings $settings) { $item = $settings->get_reader(); $category = $settings->get_category(); //if it is a reimport if ($data = $settings->get_data()) { if ($data->qtype == 'calculatedsimple') { return new self($category); } else { return null; } } $accept = !is_null(CalculatedBuilder::factory($item, $source_root, $target_root)) && $item->toolName == self::get_tool_name() && $item->toolVersion >= Qti::get_tool_version() && $item->label == 'calculatedsimple'; if ($accept) { return new self($category); } else { return null; } }
/** * Build questions using moodle serialized data. Used for reimport, i.e. from Moodle to Moodle. * Used to process data not supported by QTI and to improve performances. * * @param QtiImportSettings $data * @return object|null */ public function build_moodle(QtiImportSettings $settings) { $data = $settings->get_data(); $result = parent::build_moodle($settings); $result->dataset = $data->options->datasets; $result->single = $data->options->single; $result->shuffleanswers = $data->options->shuffleanswers; $result->answernumbering = $data->options->answernumbering; $result->synchronize = $data->options->synchronize; $answers = $data->options->answers; foreach ($answers as $a) { $result->answers[] = $a->answer; $result->feedback[] = $this->format_text($a->feedback); $result->fraction[] = $a->fraction; $result->tolerance[] = $a->tolerance; $result->tolerancetype[] = $a->tolerancetype; $result->correctanswerformat[] = $a->correctanswerformat; $result->correctanswerlength[] = $a->correctanswerlength; } $datasets = $data->options->datasets; foreach ($result->dataset as $ds) { $ds->min = $ds->minimum; $ds->max = $ds->maximum; $ds->length = end(explode(':', $ds->options)); $ds->datasetitem = $ds->items; } return $result; }
/** * Build questions using moodle serialized data. Used for reimport, i.e. from Moodle to Moodle. * Used to process data not supported by QTI and to improve performances. * * @param QtiImportSettings $data * @return object|null */ public function build_moodle(QtiImportSettings $settings) { $data = $settings->get_data(); $result = parent::build_moodle($settings); $true_answer = $data->options->answers[$data->options->trueanswer]; $false_answer = $data->options->answers[$data->options->falseanswer]; $result->feedbacktrue = $this->format_text($true_answer->feedback); $result->feedbackfalse = $this->format_text($false_answer->feedback); $result->correctanswer = intval($true_answer->fraction) == 1; return $result; }
/** * Build questions using moodle serialized data. Used for reimport, i.e. from Moodle to Moodle. * Used to process data not supported by QTI and to improve performances. * * @param QtiImportSettings $data * @return object|null */ public function build_moodle(QtiImportSettings $settings) { $data = $settings->get_data(); $result = parent::build_moodle($settings); return $result; }
/** * Build questions using moodle serialized data. Used for reimport, i.e. from Moodle to Moodle. * Used to process data not supported by QTI and to improve performances. * * @param QtiImportSettings $data * @return object|null */ public function build_moodle(QtiImportSettings $settings) { $data = $settings->get_data(); $result = parent::build_moodle($settings); $result->single = $data->options->single; $result->shuffleanswers = $data->options->shuffleanswers; $result->answernumbering = $data->options->layout; $answers = $data->options->answers; foreach ($answers as $a) { $result->answer[] = $a->answer; $result->feedback[] = $this->format_text($a->feedback); $result->fraction[] = $a->fraction; } return $result; }
/** * Build questions using moodle serialized data. Used for reimport, i.e. from Moodle to Moodle. * Used to process data not supported by QTI and to improve performances. * * @param QtiImportSettings $data * @return object|null */ public function build_moodle(QtiImportSettings $settings) { $data = $settings->get_data(); $result = parent::build_moodle($settings); $result->usecase = $data->options->usecase; foreach ($data->options->answers as $a) { $result->answer[] = $a->answer; $result->feedback[] = $this->format_text($a->feedback); $result->fraction[] = $a->fraction; } return $result; }
/** * Build questions using moodle serialized data. Used for reimport, i.e. from Moodle to Moodle. * Used to process data not supported by QTI and to improve performances. * * @param QtiImportSettings $data * @return object|null */ public function build_moodle(QtiImportSettings $settings) { $data = $settings->get_data(); $result = parent::build_moodle($settings); $result->instructions = $this->format_text($data->options->instructions); $result->showunits = $data->options->showunits; $result->unitsleft = $data->options->unitsleft; $result->unitgradingtype = $data->options->unitgradingtype; $result->unitpenalty = $data->options->unitpenalty; $result->multiplier = array(); $result->unit = array(); $units = $data->options->units; foreach ($units as $u) { $result->multiplier[] = $u->multiplier; $result->unit[] = $u->unit; } $answers = $data->options->answers; foreach ($answers as $a) { $result->answer[] = $a->answer; $result->fraction[] = $a->fraction; $result->tolerance[] = $a->tolerance; $result->feedback[] = $this->format_text($a->feedback); } return $result; }
/** * Build questions using moodle serialized data. Used for reimport, i.e. from Moodle to Moodle. * Used to process data not supported by QTI and to improve performances. * * @param QtiImportSettings $data * @return object|null */ public function build_moodle(QtiImportSettings $settings) { $data = $settings->get_data(); $result = parent::build_moodle($settings); $result->shuffleanswers = $data->options->shuffleanswers; $result->subquestions = array(); $result->subanswers = array(); foreach ($data->options->subquestions as $q) { $result->subquestions[] = $this->format_text($q->questiontext); $result->subanswers[] = $q->answertext; } return $result; }
protected function translate(QtiImportSettings $settings, $question, $text) { $pattern = '/src="[^"]*"/'; $matches = array(); preg_match_all($pattern, $text, $matches, PREG_SET_ORDER); foreach ($matches as $match) { $match = reset($match); $match = str_replace('src="', '', $match); $match = trim($match, '"'); $replace = $this->translate_path($match); $text = str_ireplace('src="' . $match . '"', 'src="' . $replace . '"', $text); $name = end(explode('/', $match)); $question->resources[$name] = $settings->get_directory() . $match; } return $text; }