/**
  * Adds a table of subject reviews to the PDF
  *
  * @param array $reviews
  * @param int $displayby
  */
 public function subject_review_table($reviews, $displayby = PROGRESSREVIEW_STUDENT)
 {
     $table = new html_table();
     $table->head = array('', '', get_string('attendance', 'local_progressreview') . $attendanceicon, get_string('punctuality', 'local_progressreview') . $punctualityicon, get_string('homework', 'local_progressreview') . $homeworkicon, get_string('behaviour', 'local_progressreview') . $behaviouricon, get_string('effort', 'local_progressreview') . $efforticon);
     $table->head[] = get_string('targetgrade', 'local_progressreview') . $targeticon;
     $table->head[] = get_string('performancegrade', 'local_progressreview') . $performanceicon;
     if ($displayby == PROGRESSREVIEW_STUDENT) {
         $table->head[0] = get_string('course');
         $table->head[1] = get_string('teacher', 'local_progressreview');
     }
     $rows = array();
     foreach ($reviews as $key => $review) {
         $student = $review->get_student();
         $session = $review->get_session();
         $plugins = $review->get_plugins();
         foreach ($plugins as $pluginname => $plugin) {
             $newrows = $plugin->add_table_rows($displayby, true, false);
             foreach ($newrows as $newrow) {
                 if (get_class($newrow) != 'html_table_row') {
                     throw new coding_exception('add_table_rows must return an
                         array of html_table_row objects. The ' . $pluginname . ' plugin
                         didn\'t do this.');
                 }
                 // This is strange and unpleasant, but aparrently necessary - using the whole
                 // html_table_row causes a rendering problem, presumably due to something
                 // in pdf_writer::table. If this can be fixed, this can be replaced with the
                 // commented array_merge below.
                 $rows[] = $newrow->cells;
             }
             // $rows = array_merge($rows, $newrows);
         }
     }
     $table->data = $rows;
     $table->size = array(80, 100, 75, 75, 75, 75, 75, 75, 90);
     pdf_writer::change_font((object) array('size' => 10));
     pdf_writer::table($table);
     pdf_writer::$pdf->Ln(30);
 }
Пример #2
0
                     throw new coding_exception('The progressreview_' . $name . ' has no print
                         renderer. It must have a print renderer with at least the review()
                         method defined');
                 }
             }
             pdf_writer::page_break();
             $strtutor = get_string('tutor', 'local_progressreview');
             $fullname = fullname($tutorreview->get_teacher());
             $output->heading('Tutor Review    ' . $strtutor . ': ' . $fullname, 3);
             pdf_writer::$pdf->Ln(10);
             $tutorreviews = '';
             foreach ($pluginrenderers as $key => $pluginrenderer) {
                 $pluginrenderer->review($reviewdata[$key]);
             }
             pdf_writer::$pdf->Ln(20);
             pdf_writer::change_font((object) array('size' => 10));
             pdf_writer::div('End of ' . $heading);
             pdf_writer::div(date('d/m/Y'));
             pdf_writer::page_break();
         }
     }
 } else {
     ksort($sortedsubjectreviews);
     foreach ($sortedsubjectreviews as $sessionreviews) {
         ksort($sessionreviews);
         foreach ($sessionreviews as $shortname => $coursereviews) {
             ksort($coursereviews);
             $firstreview = current($coursereviews);
             $session = $firstreview->get_session();
             $heading = $firstreview->get_course()->fullname . ' - ' . $session->name;
             $output->heading($heading, 1);