Esempio n. 1
0
    /**
     * Generates the table of summarydata
     *
     * @param quiz_attempt $attemptobj
     * @param mod_quiz_display_options $displayoptions
     */
    public function summary_table($attemptobj, $displayoptions) {
        // Prepare the summary table header.
        $table = new html_table();
        $table->attributes['class'] = 'generaltable quizsummaryofattempt boxaligncenter';
        $table->head = array(get_string('question', 'quiz'), get_string('status', 'quiz'));
        $table->align = array('left', 'left');
        $table->size = array('', '');
        $markscolumn = $displayoptions->marks >= question_display_options::MARK_AND_MAX;
        if ($markscolumn) {
            $table->head[] = get_string('marks', 'quiz');
            $table->align[] = 'left';
            $table->size[] = '';
        }
        $table->data = array();

        // Get the summary info for each question.
        $slots = $attemptobj->get_slots();
        foreach ($slots as $slot) {
            if (!$attemptobj->is_real_question($slot)) {
                continue;
            }
            $flag = '';
            if ($attemptobj->is_question_flagged($slot)) {
                $flag = html_writer::empty_tag('img', array('src' => $this->pix_url('i/flagged'),
                        'alt' => get_string('flagged', 'question'), 'class' => 'questionflag'));
            }
            if ($attemptobj->can_navigate_to($slot)) {
                $row = array(html_writer::link($attemptobj->attempt_url($slot),
                        $attemptobj->get_question_number($slot) . $flag),
                        $attemptobj->get_question_status($slot, $displayoptions->correctness));
            } else {
                $row = array($attemptobj->get_question_number($slot) . $flag,
                                $attemptobj->get_question_status($slot, $displayoptions->correctness));
            }
            if ($markscolumn) {
                $row[] = $attemptobj->get_question_mark($slot);
            }
            $table->data[] = $row;
            $table->rowclasses[] = $attemptobj->get_question_state_class(
                    $slot, $displayoptions->correctness);
        }

        // Print the summary table.
        $output = html_writer::table($table);

        return $output;
    }
Esempio n. 2
0
 /**
  * Generates the table of summarydata
  *
  * @param quiz_attempt $attemptobj
  * @param mod_quiz_display_options $displayoptions
  */
 public function summary_table($attemptobj, $displayoptions)
 {
     // Prepare the summary table header.
     $table = new html_table();
     $table->attributes['class'] = 'generaltable quizsummaryofattempt boxaligncenter';
     $table->head = array(get_string('question', 'quiz'), get_string('status', 'quiz'));
     $table->align = array('left', 'left');
     $table->size = array('', '');
     $markscolumn = $displayoptions->marks >= question_display_options::MARK_AND_MAX;
     if ($markscolumn) {
         $table->head[] = get_string('marks', 'quiz');
         $table->align[] = 'left';
         $table->size[] = '';
     }
     $tablewidth = count($table->align);
     $table->data = array();
     // Get the summary info for each question.
     $slots = $attemptobj->get_slots();
     foreach ($slots as $slot) {
         // Add a section headings if we need one here.
         $heading = $attemptobj->get_heading_before_slot($slot);
         if ($heading) {
             $cell = new html_table_cell(format_string($heading));
             $cell->header = true;
             $cell->colspan = $tablewidth;
             $table->data[] = array($cell);
         }
         // Don't display information items.
         if (!$attemptobj->is_real_question($slot)) {
             continue;
         }
         // Real question, show it.
         $flag = '';
         if ($attemptobj->is_question_flagged($slot)) {
             $flag = html_writer::empty_tag('img', array('src' => $this->pix_url('i/flagged'), 'alt' => get_string('flagged', 'question'), 'class' => 'questionflag icon-post'));
         }
         if ($attemptobj->can_navigate_to($slot)) {
             $row = array(html_writer::link($attemptobj->attempt_url($slot), $attemptobj->get_question_number($slot) . $flag), $attemptobj->get_question_status($slot, $displayoptions->correctness));
         } else {
             $row = array($attemptobj->get_question_number($slot) . $flag, $attemptobj->get_question_status($slot, $displayoptions->correctness));
         }
         if ($markscolumn) {
             $row[] = $attemptobj->get_question_mark($slot);
         }
         $table->data[] = $row;
         $table->rowclasses[] = 'quizsummary' . $slot . ' ' . $attemptobj->get_question_state_class($slot, $displayoptions->correctness);
     }
     // Print the summary table.
     $output = html_writer::table($table);
     return $output;
 }