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 /** 19 * Course completion critieria aggregation 20 * 21 * @package core_completion 22 * @category completion 23 * @copyright 2009 Catalyst IT Ltd 24 * @author Aaron Barnes <aaronb@catalyst.net.nz> 25 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 26 */ 27 28 defined('MOODLE_INTERNAL') || die(); 29 require_once($CFG->dirroot.'/completion/data_object.php'); 30 31 /** 32 * Course completion critieria aggregation 33 * 34 * @package core_completion 35 * @category completion 36 * @copyright 2009 Catalyst IT Ltd 37 * @author Aaron Barnes <aaronb@catalyst.net.nz> 38 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 39 */ 40 class completion_aggregation extends data_object { 41 42 /* @var string Database table name that stores completion aggregation information */ 43 public $table = 'course_completion_aggr_methd'; 44 45 /** 46 * Array of required table fields, must start with 'id'. 47 * Defaults to id, course, criteriatype, method, value 48 * @var array 49 */ 50 public $required_fields = array('id', 'course', 'criteriatype', 'method', 'value'); 51 52 /* @var array Array of unique fields, used in where clauses */ 53 public $unique_fields = array('course', 'criteriatype'); 54 55 /* @var int Course id */ 56 public $course; 57 58 /* @var int Criteria type this aggregation method applies to, or NULL for overall course aggregation */ 59 public $criteriatype; 60 61 /* @var int Aggregation method (COMPLETION_AGGREGATION_* constant) */ 62 public $method; 63 64 /* @var mixed Method value */ 65 public $value; 66 67 68 /** 69 * Finds and returns a data_object instance based on params. 70 * 71 * @param array $params associative arrays varname=>value 72 * @return data_object instance of data_object or false if none found. 73 */ 74 public static function fetch($params) { 75 return self::fetch_helper('course_completion_aggr_methd', __CLASS__, $params); 76 } 77 78 79 /** 80 * Finds and returns all data_object instances based on params. 81 * 82 * @param array $params associative arrays varname=>value 83 * @return array array of data_object insatnces or false if none found. 84 */ 85 public static function fetch_all($params) {} 86 87 /** 88 * Set the aggregation method 89 * 90 * @param int $method One of COMPLETION_AGGREGATION_ALL or COMPLETION_AGGREGATION_ANY 91 */ 92 public function setMethod($method) { 93 $methods = array( 94 COMPLETION_AGGREGATION_ALL, 95 COMPLETION_AGGREGATION_ANY, 96 ); 97 98 if (in_array($method, $methods)) { 99 $this->method = $method; 100 } else { 101 $this->method = COMPLETION_AGGREGATION_ALL; 102 } 103 } 104 105 106 /** 107 * Save aggregation method to database 108 * 109 * @access public 110 * @return boolean 111 */ 112 public function save() { 113 if ($this->id) { 114 return $this->update(); 115 } else { 116 return $this->insert(); 117 } 118 } 119 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body