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.
   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   * Context locked event.
  19   *
  20   * @package    core_access
  21   * @copyright  2019 University of Nottingham
  22   * @author     Neill Magill <neill.magill@nottingham.ac.uk>
  23   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  24   */
  25  
  26  namespace core\event;
  27  
  28  defined('MOODLE_INTERNAL') || die();
  29  
  30  /**
  31   * Event triggered after a context has been frozen.
  32   *
  33   * @package    core_access
  34   * @since      Moodle 3.8
  35   * @copyright  2019 University of Nottingham
  36   * @author     Neill Magill <neill.magill@nottingham.ac.uk>
  37   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  38   */
  39  class context_locked extends base {
  40      /**
  41       * Returns description of what happened.
  42       *
  43       * @return string
  44       */
  45      public function get_description() {
  46          return "The user with id '$this->userid' locked the context with id '$this->objectid' ";
  47      }
  48  
  49      /**
  50       * Return localised event name.
  51       *
  52       * @return string
  53       */
  54      public static function get_name() {
  55          return get_string('eventcontextlocked', 'access');
  56      }
  57  
  58      /**
  59       * Get URL related to the action
  60       *
  61       * @return \moodle_url
  62       */
  63      public function get_url() {
  64          // Try to get the url for the context.
  65          try {
  66              $context = \context::instance_by_id($this->objectid);
  67              $url = $context->get_url();
  68          } catch (\dml_missing_record_exception $e) {
  69              // The context no longer exists, give them the system url instead.
  70              $url = \context_system::instance()->get_url();
  71          }
  72          return $url;
  73      }
  74  
  75      /**
  76       * Init method.
  77       *
  78       * @return void
  79       */
  80      protected function init() {
  81          $this->data['crud'] = 'u';
  82          $this->data['edulevel'] = self::LEVEL_OTHER;
  83          $this->data['objecttable'] = 'context';
  84      }
  85  }