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   * Class for exporting plan competency data.
  19   *
  20   * @package    core_competency
  21   * @copyright  2015 Damyon Wiese
  22   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  23   */
  24  namespace core_competency\external;
  25  defined('MOODLE_INTERNAL') || die();
  26  
  27  use context_system;
  28  use renderer_base;
  29  use stdClass;
  30  
  31  /**
  32   * Class for exporting plan competency data.
  33   *
  34   * @copyright  2015 Damyon Wiese
  35   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  36   */
  37  class user_competency_plan_exporter extends \core\external\persistent_exporter {
  38  
  39      protected static function define_class() {
  40          return \core_competency\user_competency_plan::class;
  41      }
  42  
  43      protected static function define_related() {
  44          // We cache the scale so it does not need to be retrieved from the framework every time.
  45          return array('scale' => 'grade_scale');
  46      }
  47  
  48      protected function get_other_values(renderer_base $output) {
  49          $result = new stdClass();
  50  
  51          if ($this->persistent->get('grade') === null) {
  52              $gradename = '-';
  53          } else {
  54              $gradename = $this->related['scale']->scale_items[$this->persistent->get('grade') - 1];
  55          }
  56          $result->gradename = $gradename;
  57  
  58          if ($this->persistent->get('proficiency') === null) {
  59              $proficiencyname = get_string('no');
  60          } else {
  61              $proficiencyname = get_string($this->persistent->get('proficiency') ? 'yes' : 'no');
  62          }
  63          $result->proficiencyname = $proficiencyname;
  64  
  65          return (array) $result;
  66      }
  67  
  68      /**
  69       * Get the format parameters for gradename.
  70       *
  71       * @return array
  72       */
  73      protected function get_format_parameters_for_gradename() {
  74          return [
  75              'context' => context_system::instance(), // The system context is cached, so we can get it right away.
  76          ];
  77      }
  78  
  79      protected static function define_other_properties() {
  80          return array(
  81              'gradename' => array(
  82                  'type' => PARAM_TEXT
  83              ),
  84              'proficiencyname' => array(
  85                  'type' => PARAM_RAW
  86              ),
  87          );
  88      }
  89  }