Current Path : C:/xampp/htdocs/moodle/admin/tool/lp/classes/external/ |
Current File : C:/xampp/htdocs/moodle/admin/tool/lp/classes/external/user_evidence_summary_exporter.php |
<?php // This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * Class for exporting user evidence with all competencies. * * @package tool_lp * @copyright 2016 Serge Gauthier - <serge.gauthier.2@umontreal.ca> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace tool_lp\external; defined('MOODLE_INTERNAL') || die(); use moodle_url; use renderer_base; use core_files\external\stored_file_exporter; use core_competency\external\performance_helper; /** * Class for exporting user evidence with all competencies. * * @copyright 2016 Serge Gauthier - <serge.gauthier.2@umontreal.ca> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class user_evidence_summary_exporter extends \core\external\persistent_exporter { protected static function define_class() { return \core_competency\user_evidence::class; } protected static function define_other_properties() { return array( 'canmanage' => array( 'type' => PARAM_BOOL ), 'filecount' => array( 'type' => PARAM_INT ), 'files' => array( 'type' => stored_file_exporter::read_properties_definition(), 'multiple' => true ), 'hasurlorfiles' => array( 'type' => PARAM_BOOL ), 'urlshort' => array( 'type' => PARAM_TEXT ), 'competencycount' => array( 'type' => PARAM_INT ), 'usercompetencies' => array( 'type' => user_evidence_competency_summary_exporter::read_properties_definition(), 'optional' => true, 'multiple' => true ), 'userhasplan' => array( 'type' => PARAM_BOOL ), ); } protected function get_other_values(renderer_base $output) { $urlshort = ''; $url = $this->persistent->get('url'); if (!empty($url)) { $murl = new moodle_url($url); $shorturl = preg_replace('@^https?://(www\.)?@', '', $murl->out(false)); $urlshort = shorten_text($shorturl, 30, true); } $files = array(); $storedfiles = $this->persistent->get_files(); if (!empty($storedfiles)) { foreach ($storedfiles as $storedfile) { $fileexporter = new stored_file_exporter($storedfile, array('context' => $this->related['context'])); $files[] = $fileexporter->export($output); } } $userevidencecompetencies = array(); $usercompetencies = $this->persistent->get_user_competencies(); $helper = new performance_helper(); foreach ($usercompetencies as $usercompetency) { $competency = $usercompetency->get_competency(); $context = $helper->get_context_from_competency($competency); $framework = $helper->get_framework_from_competency($competency); $scale = $helper->get_scale_from_competency($competency); $related = array('competency' => $competency, 'usercompetency' => $usercompetency, 'scale' => $scale, 'context' => $context); $userevidencecompetencysummaryexporter = new user_evidence_competency_summary_exporter(null, $related); $userevidencecompetencies[] = $userevidencecompetencysummaryexporter->export($output); } $values = array( 'canmanage' => $this->persistent->can_manage(), 'filecount' => count($files), 'files' => $files, 'userhasplan' => $this->persistent->user_has_plan(), 'hasurlorfiles' => !empty($files) || !empty($url), 'urlshort' => $urlshort, 'competencycount' => count($userevidencecompetencies), 'usercompetencies' => $userevidencecompetencies ); return $values; } }