当前位置: 首页>>代码示例>>PHP>>正文


PHP question_attempt::get_last_qt_data方法代码示例

本文整理汇总了PHP中question_attempt::get_last_qt_data方法的典型用法代码示例。如果您正苦于以下问题:PHP question_attempt::get_last_qt_data方法的具体用法?PHP question_attempt::get_last_qt_data怎么用?PHP question_attempt::get_last_qt_data使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在question_attempt的用法示例。


在下文中一共展示了question_attempt::get_last_qt_data方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: subquestion

 public function subquestion(question_attempt $qa, question_display_options $options, qtype_combined_combinable_base $subq, $placeno)
 {
     $question = $subq->question;
     $place = $placeno + 1;
     $group = $question->places[$place];
     $fieldname = $subq->step_data_name($question->field($place));
     $value = $qa->get_last_qt_var($fieldname);
     $attributes = array('id' => str_replace(':', '_', $qa->get_qt_field_name($fieldname)));
     if ($options->readonly) {
         $attributes['disabled'] = 'disabled';
     }
     $orderedchoices = $question->get_ordered_choices($group);
     $selectoptions = array();
     foreach ($orderedchoices as $orderedchoicevalue => $orderedchoice) {
         $selectoptions[$orderedchoicevalue] = $orderedchoice->text;
     }
     $feedbackimage = '';
     if ($options->correctness) {
         $response = $qa->get_last_qt_data();
         if (array_key_exists($fieldname, $response)) {
             $fraction = (int) ($response[$fieldname] == $question->get_right_choice_for($place));
             $attributes['class'] = $this->feedback_class($fraction);
             $feedbackimage = $this->feedback_image($fraction);
         }
     }
     $selecthtml = html_writer::select($selectoptions, $qa->get_qt_field_name($fieldname), $value, get_string('choosedots'), $attributes) . ' ' . $feedbackimage;
     return html_writer::tag('span', $selecthtml, array('class' => 'control'));
 }
开发者ID:antoniorodrigues,项目名称:redes-digitais,代码行数:28,代码来源:renderer.php

示例2: formulation_and_controls

 public function formulation_and_controls(question_attempt $qa, question_display_options $options)
 {
     global $PAGE;
     $question = $qa->get_question();
     $response = $qa->get_last_qt_data();
     $questiontext = $question->format_questiontext($qa);
     $output = html_writer::tag('div', $questiontext, array('class' => 'qtext'));
     $bgimage = self::get_url_for_image($qa, 'bgimage');
     $img = html_writer::empty_tag('img', array('src' => $bgimage, 'class' => 'dropbackground', 'alt' => get_string('dropbackground', 'qtype_ddimageortext')));
     $droparea = html_writer::tag('div', $img, array('class' => 'droparea'));
     $dragimagehomes = '';
     foreach ($question->choices as $groupno => $group) {
         $dragimagehomesgroup = '';
         $orderedgroup = $question->get_ordered_choices($groupno);
         foreach ($orderedgroup as $choiceno => $dragimage) {
             $dragimageurl = self::get_url_for_image($qa, 'dragimage', $dragimage->id);
             $classes = array("group{$groupno}", 'draghome', "dragitemhomes{$dragimage->no}", "choice{$choiceno}");
             if ($dragimage->infinite) {
                 $classes[] = 'infinite';
             }
             if ($dragimageurl === null) {
                 $classes[] = 'yui3-cssfonts';
                 $dragimagehomesgroup .= html_writer::tag('div', $dragimage->text, array('src' => $dragimageurl, 'class' => join(' ', $classes)));
             } else {
                 $dragimagehomesgroup .= html_writer::empty_tag('img', array('src' => $dragimageurl, 'alt' => $dragimage->text, 'class' => join(' ', $classes)));
             }
         }
         $dragimagehomes .= html_writer::tag('div', $dragimagehomesgroup, array('class' => 'dragitemgroup' . $groupno));
     }
     $dragitemsclass = 'dragitems';
     if ($options->readonly) {
         $dragitemsclass .= ' readonly';
     }
     $dragitems = html_writer::tag('div', $dragimagehomes, array('class' => $dragitemsclass));
     $dropzones = html_writer::tag('div', '', array('class' => 'dropzones'));
     $hiddens = '';
     foreach ($question->places as $placeno => $place) {
         $varname = $question->field($placeno);
         list($fieldname, $html) = $this->hidden_field_for_qt_var($qa, $varname);
         $hiddens .= $html;
         $question->places[$placeno]->fieldname = $fieldname;
     }
     $output .= html_writer::tag('div', $droparea . $dragitems . $dropzones . $hiddens, array('class' => 'ddarea'));
     $topnode = 'div#q' . $qa->get_slot() . ' div.ddarea';
     $params = array('drops' => $question->places, 'topnode' => $topnode, 'readonly' => $options->readonly);
     $PAGE->requires->string_for_js('blank', 'qtype_ddimageortext');
     $PAGE->requires->yui_module('moodle-qtype_ddimageortext-dd', 'M.qtype_ddimageortext.init_question', array($params));
     if ($qa->get_state() == question_state::$invalid) {
         $output .= html_writer::nonempty_tag('div', $question->get_validation_error($qa->get_last_qt_data()), array('class' => 'validationerror'));
     }
     return $output;
 }
开发者ID:janeklb,项目名称:moodle,代码行数:52,代码来源:rendererbase.php

示例3: formulation_and_controls

 /**
  * Generate the display of the formulation part of the question. This is the
  * area that contains the quetsion text, and the controls for students to
  * input their answers. Some question types also embed bits of feedback, for
  * example ticks and crosses, in this area.
  *
  * @param question_attempt $qa the question attempt to display.
  * @param question_display_options $options controls what should and should not be displayed.
  * @return string HTML fragment.
  */
 public function formulation_and_controls(question_attempt $qa, question_display_options $options)
 {
     $question = $qa->get_question();
     $response = $qa->get_last_qt_data();
     $table = new html_table();
     $table->attributes['class'] = 'matrix';
     $table->head = array();
     $table->head[] = '';
     foreach ($question->cols as $col) {
         $table->head[] = self::matrix_header($col);
     }
     if ($options->correctness) {
         $table->head[] = '';
     }
     foreach ($question->rows as $row) {
         $row_data = array();
         $row_data[] = self::matrix_header($row);
         foreach ($question->cols as $col) {
             $key = $question->key($row, $col);
             $cell_name = $qa->get_field_prefix() . $key;
             $is_readonly = $options->readonly;
             $is_checked = $question->is_answered($response, $row, $col);
             if ($question->multiple) {
                 $cell = self::checkbox($cell_name, $is_checked, $is_readonly);
             } else {
                 $cell = self::radio($cell_name, $col->id, $is_checked, $is_readonly);
             }
             if ($options->correctness) {
                 $weight = $question->weight($row, $col);
                 $cell .= $this->feedback_image($weight);
             }
             $row_data[] = $cell;
         }
         if ($options->correctness) {
             $row_grade = $question->grading()->grade_row($question, $row, $response);
             $feedback = $row->feedback;
             $feedback = strip_tags($feedback) ? $feedback : '';
             $row_data[] = $this->feedback_image($row_grade) . $feedback;
         }
         $table->data[] = $row_data;
         //$row_index++;
     }
     $result = $question->questiontext;
     $result .= html_writer::table($table, true);
     return $result;
 }
开发者ID:sunilwebaccess,项目名称:moodle-question-matrix,代码行数:56,代码来源:renderer.php

示例4: formulation_and_controls

 public function formulation_and_controls(question_attempt $qa, question_display_options $options)
 {
     $question = $qa->get_question();
     $stemorder = $question->get_stem_order();
     $response = $qa->get_last_qt_data();
     $choices = $this->format_choices($question);
     $result = '';
     $result .= html_writer::tag('div', $question->format_questiontext($qa), array('class' => 'qtext'));
     $result .= html_writer::start_tag('div', array('class' => 'ablock'));
     $result .= html_writer::start_tag('table', array('class' => 'answer'));
     $result .= html_writer::start_tag('tbody');
     $parity = 0;
     $i = 1;
     foreach ($stemorder as $key => $stemid) {
         $result .= html_writer::start_tag('tr', array('class' => 'r' . $parity));
         $fieldname = 'sub' . $key;
         $result .= html_writer::tag('td', $this->format_stem_text($qa, $stemid), array('class' => 'text'));
         $classes = 'control';
         $feedbackimage = '';
         if (array_key_exists($fieldname, $response)) {
             $selected = $response[$fieldname];
         } else {
             $selected = 0;
         }
         $fraction = (int) ($selected && $selected == $question->get_right_choice_for($stemid));
         if ($options->correctness && $selected) {
             $classes .= ' ' . $this->feedback_class($fraction);
             $feedbackimage = $this->feedback_image($fraction);
         }
         $result .= html_writer::tag('td', html_writer::label(get_string('answer', 'qtype_match', $i), 'menu' . $qa->get_qt_field_name('sub' . $key), false, array('class' => 'accesshide')) . html_writer::select($choices, $qa->get_qt_field_name('sub' . $key), $selected, array('0' => 'choose'), array('disabled' => $options->readonly)) . ' ' . $feedbackimage, array('class' => $classes));
         $result .= html_writer::end_tag('tr');
         $parity = 1 - $parity;
         $i++;
     }
     $result .= html_writer::end_tag('tbody');
     $result .= html_writer::end_tag('table');
     $result .= html_writer::end_tag('div');
     // Closes <div class="ablock">.
     if ($qa->get_state() == question_state::$invalid) {
         $result .= html_writer::nonempty_tag('div', $question->get_validation_error($response), array('class' => 'validationerror'));
     }
     return $result;
 }
开发者ID:evltuma,项目名称:moodle,代码行数:43,代码来源:renderer.php

示例5: check_combined_feedback_file_access

    /**
     * Check a request for access to a file belonging to a combined feedback field.
     * @param question_attempt $qa the question attempt being displayed.
     * @param question_display_options $options the options that control display of the question.
     * @param string $filearea the name of the file area.
     * @return bool whether access to the file should be allowed.
     */
    protected function check_combined_feedback_file_access($qa, $options, $filearea) {
        $state = $qa->get_state();

        if (!$state->is_finished()) {
            $response = $qa->get_last_qt_data();
            if (!$this->is_gradable_response($response)) {
                return false;
            }
            list($notused, $state) = $this->grade_response($response);
        }

        return $options->feedback && $state->get_feedback_class() . 'feedback' == $filearea;
    }
开发者ID:nigeldaley,项目名称:moodle,代码行数:20,代码来源:questionbase.php

示例6: hint

 protected function hint(question_attempt $qa, question_hint $hint)
 {
     $output = '';
     $question = $qa->get_question();
     $response = $qa->get_last_qt_data();
     if ($hint->statewhichincorrect) {
         $wrongdrags = $question->get_wrong_drags($response);
         $wrongparts = array();
         foreach ($wrongdrags as $wrongdrag) {
             $wrongparts[] = html_writer::nonempty_tag('span', $wrongdrag, array('class' => 'wrongpart'));
         }
         $output .= html_writer::nonempty_tag('div', get_string('followingarewrong', 'qtype_ddmarker', join(', ', $wrongparts)), array('class' => 'wrongparts'));
     }
     $output .= parent::hint($qa, $hint);
     return $output;
 }
开发者ID:evltuma,项目名称:moodle,代码行数:16,代码来源:renderer.php

示例7: clear_wrong

 /**
  * Actually, this question type abuses this method to always ouptut the
  * hidden fields it needs.
  */
 public function clear_wrong(question_attempt $qa, $reallyclear = true)
 {
     $question = $qa->get_question();
     $response = $qa->get_last_qt_data();
     if (!empty($response) && $reallyclear) {
         $cleanresponse = $question->clear_wrong_from_response($response);
     } else {
         $cleanresponse = $response;
     }
     $output = '';
     foreach ($question->places as $place => $group) {
         $fieldname = $question->field($place);
         if (array_key_exists($fieldname, $response)) {
             $value = $response[$fieldname];
         } else {
             $value = '0';
         }
         if (array_key_exists($fieldname, $cleanresponse)) {
             $cleanvalue = $cleanresponse[$fieldname];
         } else {
             $cleanvalue = '0';
         }
         if ($cleanvalue != $value) {
             $output .= html_writer::empty_tag('input', array('type' => 'hidden', 'id' => $this->box_id($qa, 'p' . $place), 'value' => s($value))) . html_writer::empty_tag('input', array('type' => 'hidden', 'name' => $qa->get_qt_field_name($fieldname), 'value' => s($cleanvalue)));
         } else {
             $output .= html_writer::empty_tag('input', array('type' => 'hidden', 'id' => $this->box_id($qa, 'p' . $place), 'name' => $qa->get_qt_field_name($fieldname), 'value' => s($value)));
         }
     }
     return $output;
 }
开发者ID:janeklb,项目名称:moodle,代码行数:34,代码来源:renderer.php

示例8: formulation_and_controls

 public function formulation_and_controls(question_attempt $qa, question_display_options $options)
 {
     global $CFG, $DB;
     $question = $qa->get_question();
     $response = $qa->get_last_qt_data();
     $question->update_current_response($response);
     $currentresponse = $question->currentresponse;
     $correctresponse = $question->correctresponse;
     // generate fieldnames and ids
     //   response_fieldname : 1_response_319
     //   response_name      : q27:1_response_319
     //   response_id        : id_q27_1_response_319
     //   sortable_id        : id_sortable_q27_1_response_319
     $response_fieldname = $question->get_response_fieldname();
     $response_name = $qa->get_qt_field_name($response_fieldname);
     $response_id = 'id_' . preg_replace('/[^a-zA-Z0-9]+/', '_', $response_name);
     $sortable_id = 'id_sortable_' . $question->id;
     $result = '';
     if ($options->readonly || $options->correctness) {
         // don't allow items to be dragged and dropped
     } else {
         $script = "\n";
         $script .= "//<![CDATA[\n";
         $script .= "if (window.\$) {\n";
         // $ is an alias for jQuery
         $script .= "    \$(function() {\n";
         $script .= "        \$('#{$sortable_id}').sortable({\n";
         $script .= "            update: function(event, ui) {\n";
         $script .= "                var ItemsOrder = \$(this).sortable('toArray').toString();\n";
         $script .= "                \$('#{$response_id}').attr('value', ItemsOrder);\n";
         $script .= "            },\n";
         $script .= "            opacity: 0.6\n";
         $script .= "        });\n";
         $script .= "        \$('#{$sortable_id}').disableSelection();\n";
         $script .= "    });\n";
         $script .= "    \$(document).ready(function() {\n";
         $script .= "        var ItemsOrder = \$('#{$sortable_id}').sortable('toArray').toString();\n";
         $script .= "        \$('#{$response_id}').attr('value', ItemsOrder);\n";
         $script .= "    });\n";
         $script .= "}\n";
         $script .= "//]]>\n";
         $result .= html_writer::tag('script', $script, array('type' => 'text/javascript'));
     }
     $result .= html_writer::tag('div', $question->format_questiontext($qa), array('class' => 'qtext'));
     $printeditems = false;
     if (count($currentresponse)) {
         // generate ordering items
         foreach ($currentresponse as $position => $answerid) {
             if (!array_key_exists($answerid, $question->answers)) {
                 continue;
                 // shouldn't happen !!
             }
             if (!array_key_exists($position, $correctresponse)) {
                 continue;
                 // shouldn't happen !!
             }
             if ($printeditems == false) {
                 $printeditems = true;
                 $result .= html_writer::start_tag('div', array('class' => 'ablock'));
                 $result .= html_writer::start_tag('div', array('class' => 'answer'));
                 $result .= html_writer::start_tag('ul', array('class' => 'sortablelist', 'id' => $sortable_id));
             }
             if ($options->correctness) {
                 if ($correctresponse[$position] == $answerid) {
                     $class = 'correctposition';
                     $img = $this->feedback_image(1);
                 } else {
                     $class = 'wrongposition';
                     $img = $this->feedback_image(0);
                 }
                 $img = "{$img} ";
             } else {
                 $class = 'sortableitem';
                 $img = '';
             }
             // the original "id" revealed the correct order of the answers
             // because $answer->fraction holds the correct order number
             // $id = 'ordering_item_'.$answerid.'_'.intval($question->answers[$answerid]->fraction);
             $answer = $question->answers[$answerid];
             $params = array('class' => $class, 'id' => $answer->md5key);
             $result .= html_writer::tag('li', $img . $answer->answer, $params);
         }
     }
     if ($printeditems) {
         $result .= html_writer::end_tag('ul');
         $result .= html_writer::end_tag('div');
         // answer
         $result .= html_writer::end_tag('div');
         // ablock
         $result .= html_writer::empty_tag('input', array('type' => 'hidden', 'name' => $response_name, 'id' => $response_id, 'value' => ''));
         $result .= html_writer::tag('div', '', array('style' => 'clear:both;'));
     }
     return $result;
 }
开发者ID:Kathrin84,项目名称:moodle-qtype_ordering,代码行数:94,代码来源:renderer.php

示例9: combined_feedback

 protected function combined_feedback(question_attempt $qa)
 {
     $question = $qa->get_question();
     $state = $qa->get_state();
     if (!$state->is_finished()) {
         $response = $qa->get_last_qt_data();
         if (!$qa->get_question()->is_gradable_response($response)) {
             return '';
         }
         list($notused, $state) = $qa->get_question()->grade_response($response);
     }
     $feedback = '';
     $field = $state->get_feedback_class() . 'feedback';
     $format = $state->get_feedback_class() . 'feedbackformat';
     if ($question->{$field}) {
         $feedback .= $question->format_text($question->{$field}, $question->{$format}, $qa, 'question', $field, $question->id);
     }
     return $feedback;
 }
开发者ID:Kathrin84,项目名称:moodle-qtype_ordering,代码行数:19,代码来源:20.php

示例10: subquestion

    /**
     * Output the content of the subquestion.
     *
     * @param question_attempt $qa
     * @param question_display_options $options
     * @param int $index
     * @param question_graded_automatically $subq
     * @return string
     */
    public function subquestion(question_attempt $qa, question_display_options $options,
                                $index, question_graded_automatically $subq) {

        if (!$subq instanceof qtype_multichoice_multi_question) {
            throw new coding_exception('Expecting subquestion of type qtype_multichoice_multi_question');
        }

        $fieldprefix = 'sub' . $index . '_';
        $fieldname = $fieldprefix . 'choice';

        // Extract the responses that related to this question + strip off the prefix.
        $fieldprefixlen = strlen($fieldprefix);
        $response = [];
        foreach ($qa->get_last_qt_data() as $name => $val) {
            if (substr($name, 0, $fieldprefixlen) == $fieldprefix) {
                $name = substr($name, $fieldprefixlen);
                $response[$name] = $val;
            }
        }

        $basename = $qa->get_qt_field_name($fieldname);
        $inputattributes = array(
            'type' => 'checkbox',
            'value' => 1,
        );
        if ($options->readonly) {
            $inputattributes['disabled'] = 'disabled';
        }

        $result = $this->all_choices_wrapper_start();

        // Calculate the total score (as we need to know if choices should be marked as 'correct' or 'partial').
        $fraction = 0;
        foreach ($subq->get_order($qa) as $value => $ansid) {
            $ans = $subq->answers[$ansid];
            if ($subq->is_choice_selected($response, $value)) {
                $fraction += $ans->fraction;
            }
        }
        // Display 'correct' answers as correct, if we are at 100%, otherwise mark them as 'partial'.
        $answerfraction = ($fraction > 0.999) ? 1.0 : 0.5;

        foreach ($subq->get_order($qa) as $value => $ansid) {
            $ans = $subq->answers[$ansid];

            $name = $basename.$value;
            $inputattributes['name'] = $name;
            $inputattributes['id'] = $name;

            $isselected = $subq->is_choice_selected($response, $value);
            if ($isselected) {
                $inputattributes['checked'] = 'checked';
            } else {
                unset($inputattributes['checked']);
            }

            $class = 'r' . ($value % 2);
            if ($options->correctness && $isselected) {
                $thisfrac = ($ans->fraction > 0) ? $answerfraction : 0;
                $feedbackimg = $this->feedback_image($thisfrac);
                $class .= ' ' . $this->feedback_class($thisfrac);
            } else {
                $feedbackimg = '';
            }

            $result .= $this->choice_wrapper_start($class);
            $result .= html_writer::empty_tag('input', $inputattributes);
            $result .= html_writer::tag('label', $subq->format_text($ans->answer,
                                                                    $ans->answerformat, $qa, 'question', 'answer', $ansid),
                                        array('for' => $inputattributes['id']));
            $result .= $feedbackimg;

            if ($options->feedback && $isselected && trim($ans->feedback)) {
                $result .= html_writer::tag('div',
                                            $subq->format_text($ans->feedback, $ans->feedbackformat,
                                                               $qa, 'question', 'answerfeedback', $ansid),
                                            array('class' => 'specificfeedback'));
            }

            $result .= $this->choice_wrapper_end();
        }

        $result .= $this->all_choices_wrapper_end();

        $feedback = array();
        if ($options->feedback && $options->marks >= question_display_options::MARK_AND_MAX &&
            $subq->maxmark > 0) {
            $a = new stdClass();
            $a->mark = format_float($fraction * $subq->maxmark, $options->markdp);
            $a->max = format_float($subq->maxmark, $options->markdp);

//.........这里部分代码省略.........
开发者ID:rezaies,项目名称:moodle,代码行数:101,代码来源:renderer.php

示例11: construct_answerblock

 /**
  * Construct the answer block area
  *
  * @param question_attempt $qa
  */
 public function construct_answerblock($qa, $question, $options)
 {
     $stemorder = $question->get_stem_order();
     $response = $qa->get_last_qt_data();
     $choices = $this->format_choices($qa);
     $o = html_writer::start_tag('div', array('class' => 'ablock'));
     $o .= html_writer::start_tag('table', array('class' => 'answer'));
     $o .= html_writer::start_tag('tbody');
     $parity = 0;
     $curfieldname = null;
     foreach ($stemorder as $key => $stemid) {
         $o .= html_writer::start_tag('tr', array('class' => 'r' . $parity));
         $o .= html_writer::tag('td', $this->construct_stem_cell($qa, $question, $stemid), array('class' => 'text'));
         $classes = array('control');
         $feedbackimage = '';
         $curfieldname = $question->get_field_name($key);
         if (array_key_exists($curfieldname, $response)) {
             $selected = (int) $response[$curfieldname];
         } else {
             $selected = 0;
         }
         $fraction = (int) ($selected && $selected == $question->get_right_choice_for($stemid));
         if ($options->correctness && $selected) {
             $classes[] = $this->feedback_class($fraction);
             $feedbackimage = $this->feedback_image($fraction);
         }
         $dragdropclasses = $classes;
         $classes[] = 'hiddenifjs';
         $dragdropclasses[] = 'visibleifjs';
         $o .= html_writer::tag('td', $this->construct_choice_cell_select($qa, $options, $choices, $stemid, $curfieldname, $selected) . ' ' . $feedbackimage, array('class' => implode(' ', $classes)));
         $o .= html_writer::tag('td', $this->construct_choice_cell_dragdrop($qa, $options, $choices, $stemid, $curfieldname, $selected) . ' ' . $feedbackimage, array('class' => implode(' ', $dragdropclasses)));
         $o .= html_writer::end_tag('tr');
         $parity = 1 - $parity;
     }
     $o .= html_writer::end_tag('tbody');
     $o .= html_writer::end_tag('table');
     $o .= $this->construct_available_dragdrop_choices($qa, $question);
     $o .= html_writer::end_tag('div');
     $o .= html_writer::tag('div', '', array('class' => 'clearer'));
     return $o;
 }
开发者ID:antoniorodrigues,项目名称:redes-digitais,代码行数:46,代码来源:renderer.php

示例12: num_parts_correct

 public function num_parts_correct(question_attempt $qa)
 {
     $a = new stdClass();
     list($a->num, $a->outof) = $qa->get_question()->get_num_parts_right($qa->get_last_qt_data());
     if (is_null($a->outof)) {
         return '';
     } else {
         return get_string('correctanswersno', 'qtype_omeromultichoice') . '<span class="font-weight: bold">' . $a->num . '</span>';
     }
 }
开发者ID:kikkomep,项目名称:moodle.omero-qtypes,代码行数:10,代码来源:renderer.php

示例13: get_feedback_class_image

 private function get_feedback_class_image(question_attempt $qa, question_display_options $options, $key)
 {
     $question = $qa->get_question();
     $response = $qa->get_last_qt_data();
     $stemorder = $question->get_stem_order();
     $stemid = $stemorder[$key];
     $ret = new stdClass();
     $ret->class = null;
     $ret->image = '';
     $selected = $this->get_selected($question, $response, $key);
     $fraction = (int) ($selected && $selected == $question->get_right_choice_for($stemid));
     if ($options->correctness && $selected) {
         $ret->class = $this->feedback_class($fraction);
         $ret->image = $this->feedback_image($fraction);
     }
     return $ret;
 }
开发者ID:nadavkav,项目名称:Moodle2-Hebrew-plugins,代码行数:17,代码来源:renderer.php

示例14: stack_specific_feedback

 /**
  * Generate the specific feedback. This has to be a stack-specific method
  * since the standard specific_feedback method does not get given $options.
  * @param question_attempt $qa the question attempt to display.
  * @param question_display_options $options controls what should and should not be displayed.
  * @return string HTML fragment.
  */
 protected function stack_specific_feedback(question_attempt $qa, question_display_options $options)
 {
     $question = $qa->get_question();
     $response = $qa->get_last_qt_data();
     $feedbacktext = $question->specificfeedbackinstantiated;
     if (!$feedbacktext) {
         return '';
     }
     $feedbacktext = stack_maths::process_display_castext($feedbacktext, $this);
     $feedbacktext = $question->format_text($feedbacktext, $question->specificfeedbackformat, $qa, 'qtype_stack', 'specificfeedback', $question->id);
     $individualfeedback = count($question->prts) == 1;
     if ($individualfeedback) {
         $overallfeedback = '';
     } else {
         $overallfeedback = $this->overall_standard_prt_feedback($qa, $question, $response);
     }
     // Replace any PRT feedback.
     $allempty = true;
     foreach ($question->prts as $index => $prt) {
         $feedback = $this->prt_feedback($index, $response, $qa, $options, $individualfeedback);
         $allempty = $allempty && !$feedback;
         $feedbacktext = str_replace("[[feedback:{$index}]]", stack_maths::process_display_castext($feedback, $this), $feedbacktext);
     }
     if ($allempty && !$overallfeedback) {
         return '';
     }
     return $overallfeedback . $feedbacktext;
 }
开发者ID:profcab,项目名称:moodle-qtype_stack,代码行数:35,代码来源:renderer.php

示例15: num_parts_correct

 protected function num_parts_correct(question_attempt $qa)
 {
     $a = new stdClass();
     list($a->num, $a->outof) = $qa->get_question()->get_num_parts_right($qa->get_last_qt_data());
     if (is_null($a->outof)) {
         return '';
     } else {
         return get_string('yougotnrightcount', 'qtype_gapfill', $a);
     }
 }
开发者ID:dthies,项目名称:moodle-qtype_gapfill,代码行数:10,代码来源:renderer.php


注:本文中的question_attempt::get_last_qt_data方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。