Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
/comment/ -> index.php (source)

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

   1  <?php
   2  
   3  // This file is part of Moodle - http://moodle.org/
   4  //
   5  // Moodle is free software: you can redistribute it and/or modify
   6  // it under the terms of the GNU General Public License as published by
   7  // the Free Software Foundation, either version 3 of the License, or
   8  // (at your option) any later version.
   9  //
  10  // Moodle is distributed in the hope that it will be useful,
  11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13  // GNU General Public License for more details.
  14  //
  15  // You should have received a copy of the GNU General Public License
  16  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  17  
  18  /*
  19   * Comments management interface
  20   *
  21   * @package   core
  22   * @copyright 2010 Dongsheng Cai {@link http://dongsheng.org}
  23   * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  24   */
  25  require_once('../config.php');
  26  require_once($CFG->libdir.'/adminlib.php');
  27  require_once($CFG->dirroot.'/comment/locallib.php');
  28  
  29  admin_externalpage_setup('comments', '', null, '', array('pagelayout'=>'report'));
  30  
  31  $PAGE->requires->js_init_call('M.core_comment.init_admin', null, true);
  32  
  33  $action     = optional_param('action', '', PARAM_ALPHA);
  34  $commentid  = optional_param('commentid', 0, PARAM_INT);
  35  $commentids = optional_param('commentids', '', PARAM_ALPHANUMEXT);
  36  $page       = optional_param('page', 0, PARAM_INT);
  37  $confirm    = optional_param('confirm', 0, PARAM_INT);
  38  
  39  $manager = new comment_manager();
  40  
  41  if ($action and !confirm_sesskey()) {
  42      // no action if sesskey not confirmed
  43      $action = '';
  44  }
  45  
  46  if ($action === 'delete') {
  47      // delete a single comment
  48      if (!empty($commentid)) {
  49          if (!$confirm) {
  50              echo $OUTPUT->header();
  51              $optionsyes = array('action'=>'delete', 'commentid'=>$commentid, 'confirm'=>1, 'sesskey'=>sesskey());
  52              $optionsno  = array('sesskey'=>sesskey());
  53              $buttoncontinue = new single_button(new moodle_url('/comment/index.php', $optionsyes), get_string('delete'));
  54              $buttoncancel = new single_button(new moodle_url('/comment/index.php', $optionsno), get_string('cancel'));
  55              echo $OUTPUT->confirm(get_string('confirmdeletecomments', 'admin'), $buttoncontinue, $buttoncancel);
  56              echo $OUTPUT->footer();
  57              die;
  58          } else {
  59              if ($manager->delete_comment($commentid)) {
  60                  redirect($CFG->wwwroot.'/comment/');
  61              } else {
  62                  $err = 'cannotdeletecomment';
  63              }
  64          }
  65      }
  66      // delete a list of comments
  67      if (!empty($commentids)) {
  68          if ($manager->delete_comments($commentids)) {
  69              die('yes');
  70          } else {
  71              die('no');
  72          }
  73      }
  74  }
  75  
  76  echo $OUTPUT->header();
  77  echo $OUTPUT->heading(get_string('comments'));
  78  echo $OUTPUT->box_start('generalbox commentsreport');
  79  if (!empty($err)) {
  80      throw new \moodle_exception($err, 'error', $CFG->wwwroot.'/comment/');
  81  }
  82  if (empty($action)) {
  83      echo '<form method="post">';
  84      $return = $manager->print_comments($page);
  85      // if no comments available, $return will be false
  86      if ($return) {
  87          echo '<input type="submit" class="btn btn-primary" id="comments_delete" name="batchdelete"
  88              value="'.get_string('delete').'" />';
  89      }
  90      echo '</form>';
  91  }
  92  
  93  echo $OUTPUT->box_end();
  94  echo $OUTPUT->footer();