Server IP : 68.65.122.142 / Your IP : 18.119.159.148 Web Server : LiteSpeed System : Linux server167.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64 User : glenirhm ( 1318) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/glenirhm/lms.myglenbow.ca/old/tag/templates/../../completion/classes/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?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/>. /** * Contains class used to return completion progress information. * * @package core_completion * @copyright 2017 Mark Nelson <markn@moodle.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace core_completion; defined('MOODLE_INTERNAL') || die(); require_once($CFG->libdir . '/completionlib.php'); /** * Class used to return completion progress information. * * @package core_completion * @copyright 2017 Mark Nelson <markn@moodle.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class progress { /** * Returns the course percentage completed by a certain user, returns null if no completion data is available. * * @param \stdClass $course Moodle course object * @param int $userid The id of the user, 0 for the current user * @return null|float The percentage, or null if completion is not supported in the course, * or there are no activities that support completion. */ public static function get_course_progress_percentage($course, $userid = 0) { global $USER; // Make sure we continue with a valid userid. if (empty($userid)) { $userid = $USER->id; } $completion = new \completion_info($course); // First, let's make sure completion is enabled. if (!$completion->is_enabled()) { return null; } if (!$completion->is_tracked_user($userid)) { return null; } // Before we check how many modules have been completed see if the course has. if ($completion->is_course_complete($userid)) { return 100; } // Get the number of modules that support completion. $modules = $completion->get_activities(); $count = count($modules); if (!$count) { return null; } // Get the number of modules that have been completed. $completed = 0; foreach ($modules as $module) { $data = $completion->get_data($module, true, $userid); if (($data->completionstate == COMPLETION_INCOMPLETE) || ($data->completionstate == COMPLETION_COMPLETE_FAIL)) { $completed += 0; } else { $completed += 1; }; } return ($completed / $count) * 100; } }