Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.x is supported too.

Differences Between: [Versions 310 and 402] [Versions 311 and 402] [Versions 39 and 402] [Versions 400 and 402]

   1  <?php
   2  // This file is part of Moodle - http://moodle.org/
   3  //
   4  // Moodle is free software: you can redistribute it and/or modify
   5  // it under the terms of the GNU General Public License as published by
   6  // the Free Software Foundation, either version 3 of the License, or
   7  // (at your option) any later version.
   8  //
   9  // Moodle is distributed in the hope that it will be useful,
  10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  // GNU General Public License for more details.
  13  //
  14  // You should have received a copy of the GNU General Public License
  15  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  16  
  17  /**
  18   * shows an analysed view of feedback
  19   *
  20   * @copyright Andreas Grabs
  21   * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
  22   * @package mod_feedback
  23   */
  24  
  25  require_once("../../config.php");
  26  require_once ("lib.php");
  27  
  28  $current_tab = 'analysis';
  29  
  30  $id = required_param('id', PARAM_INT);  // Course module id.
  31  
  32  $url = new moodle_url('/mod/feedback/analysis.php', array('id'=>$id));
  33  $PAGE->set_url($url);
  34  
  35  list($course, $cm) = get_course_and_cm_from_cmid($id, 'feedback');
  36  require_course_login($course, true, $cm);
  37  
  38  $feedback = $PAGE->activityrecord;
  39  $feedbackstructure = new mod_feedback_structure($feedback, $cm);
  40  
  41  $context = context_module::instance($cm->id);
  42  
  43  if (!$feedbackstructure->can_view_analysis()) {
  44      throw new \moodle_exception('error');
  45  }
  46  
  47  /// Print the page header
  48  
  49  $PAGE->set_heading($course->fullname);
  50  $PAGE->set_title($feedback->name);
  51  $PAGE->activityheader->set_attrs([
  52      'hidecompletion' => true,
  53      'description' => ''
  54  ]);
  55  $PAGE->add_body_class('limitedwidth');
  56  echo $OUTPUT->header();
  57  echo $OUTPUT->heading(get_string('analysis', 'mod_feedback'), 3);
  58  
  59  //get the groupid
  60  $mygroupid = groups_get_activity_group($cm, true);
  61  groups_print_activity_menu($cm, $url);
  62  
  63  // Button "Export to excel".
  64  if (has_capability('mod/feedback:viewreports', $context) && $feedbackstructure->get_items()) {
  65      echo $OUTPUT->container_start('form-buttons');
  66      $aurl = new moodle_url('/mod/feedback/analysis_to_excel.php', ['sesskey' => sesskey(), 'id' => $id]);
  67      echo $OUTPUT->single_button($aurl, get_string('export_to_excel', 'feedback'));
  68      echo $OUTPUT->container_end();
  69  }
  70  
  71  // Show the summary.
  72  $summary = new mod_feedback\output\summary($feedbackstructure, $mygroupid);
  73  echo $OUTPUT->render_from_template('mod_feedback/summary', $summary->export_for_template($OUTPUT));
  74  
  75  // Get the items of the feedback.
  76  $items = $feedbackstructure->get_items(true);
  77  
  78  $check_anonymously = true;
  79  if ($mygroupid > 0 AND $feedback->anonymous == FEEDBACK_ANONYMOUS_YES) {
  80      $completedcount = $feedbackstructure->count_completed_responses($mygroupid);
  81      if ($completedcount < FEEDBACK_MIN_ANONYMOUS_COUNT_IN_GROUP) {
  82          $check_anonymously = false;
  83      }
  84  }
  85  
  86  echo '<div>';
  87  if ($check_anonymously) {
  88      // Print the items in an analysed form.
  89      foreach ($items as $item) {
  90          $itemobj = feedback_get_item_class($item->typ);
  91          $printnr = ($feedback->autonumbering && $item->itemnr) ? ($item->itemnr . '.') : '';
  92          $itemobj->print_analysed($item, $printnr, $mygroupid);
  93      }
  94  } else {
  95      echo $OUTPUT->heading_with_help(get_string('insufficient_responses_for_this_group', 'feedback'),
  96                                      'insufficient_responses',
  97                                      'feedback', '', '', 3);
  98  }
  99  echo '</div>';
 100  
 101  echo $OUTPUT->footer();