[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 // This file is part of Moodle - http://moodle.org/ 4 // 5 // Moodle is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // Moodle is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 17 18 19 /** 20 * A namespace contains license specific functions 21 * 22 * @since Moodle 2.0 23 * @package core 24 * @subpackage lib 25 * @copyright 2010 Dongsheng Cai <dongsheng@moodle.com> 26 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 27 */ 28 29 defined('MOODLE_INTERNAL') || die(); 30 31 class license_manager { 32 /** 33 * Adding a new license type 34 * @param object $license { 35 * shortname => string a shortname of license, will be refered by files table[required] 36 * fullname => string the fullname of the license [required] 37 * source => string the homepage of the license type[required] 38 * enabled => int is it enabled? 39 * version => int a version number used by moodle [required] 40 * } 41 */ 42 static public function add($license) { 43 global $DB; 44 if ($record = $DB->get_record('license', array('shortname'=>$license->shortname))) { 45 // record exists 46 if ($record->version < $license->version) { 47 // update license record 48 $license->enabled = $record->enabled; 49 $license->id = $record->id; 50 $DB->update_record('license', $license); 51 } 52 } else { 53 $DB->insert_record('license', $license); 54 } 55 return true; 56 } 57 58 /** 59 * Get license records 60 * @param mixed $param 61 * @return array 62 */ 63 static public function get_licenses($param = null) { 64 global $DB; 65 if (empty($param) || !is_array($param)) { 66 $param = array(); 67 } 68 // get licenses by conditions 69 if ($records = $DB->get_records('license', $param)) { 70 return $records; 71 } else { 72 return array(); 73 } 74 } 75 76 /** 77 * Get license record by shortname 78 * @param mixed $param the shortname of license, or an array 79 * @return object 80 */ 81 static public function get_license_by_shortname($name) { 82 global $DB; 83 if ($record = $DB->get_record('license', array('shortname'=>$name))) { 84 return $record; 85 } else { 86 return null; 87 } 88 } 89 90 /** 91 * Enable a license 92 * @param string $license the shortname of license 93 * @return boolean 94 */ 95 static public function enable($license) { 96 global $DB; 97 if ($license = self::get_license_by_shortname($license)) { 98 $license->enabled = 1; 99 $DB->update_record('license', $license); 100 } 101 self::set_active_licenses(); 102 return true; 103 } 104 105 /** 106 * Disable a license 107 * @param string $license the shortname of license 108 * @return boolean 109 */ 110 static public function disable($license) { 111 global $DB, $CFG; 112 // Site default license cannot be disabled! 113 if ($license == $CFG->sitedefaultlicense) { 114 print_error('error'); 115 } 116 if ($license = self::get_license_by_shortname($license)) { 117 $license->enabled = 0; 118 $DB->update_record('license', $license); 119 } 120 self::set_active_licenses(); 121 return true; 122 } 123 124 /** 125 * Store active licenses in global $CFG 126 */ 127 static private function set_active_licenses() { 128 // set to global $CFG 129 $licenses = self::get_licenses(array('enabled'=>1)); 130 $result = array(); 131 foreach ($licenses as $l) { 132 $result[] = $l->shortname; 133 } 134 set_config('licenses', implode(',', $result)); 135 } 136 137 /** 138 * Install moodle build-in licenses 139 */ 140 static public function install_licenses() { 141 $active_licenses = array(); 142 143 $license = new stdClass(); 144 145 $license->shortname = 'unknown'; 146 $license->fullname = 'Unknown license'; 147 $license->source = ''; 148 $license->enabled = 1; 149 $license->version = '2010033100'; 150 $active_licenses[] = $license->shortname; 151 self::add($license); 152 153 $license->shortname = 'allrightsreserved'; 154 $license->fullname = 'All rights reserved'; 155 $license->source = 'http://en.wikipedia.org/wiki/All_rights_reserved'; 156 $license->enabled = 1; 157 $license->version = '2010033100'; 158 $active_licenses[] = $license->shortname; 159 self::add($license); 160 161 $license->shortname = 'public'; 162 $license->fullname = 'Public Domain'; 163 $license->source = 'http://creativecommons.org/licenses/publicdomain/'; 164 $license->enabled = 1; 165 $license->version = '2010033100'; 166 $active_licenses[] = $license->shortname; 167 self::add($license); 168 169 $license->shortname = 'cc'; 170 $license->fullname = 'Creative Commons'; 171 $license->source = 'http://creativecommons.org/licenses/by/3.0/'; 172 $license->enabled = 1; 173 $license->version = '2010033100'; 174 $active_licenses[] = $license->shortname; 175 self::add($license); 176 177 $license->shortname = 'cc-nd'; 178 $license->fullname = 'Creative Commons - NoDerivs'; 179 $license->source = 'http://creativecommons.org/licenses/by-nd/3.0/'; 180 $license->enabled = 1; 181 $license->version = '2010033100'; 182 $active_licenses[] = $license->shortname; 183 self::add($license); 184 185 $license->shortname = 'cc-nc-nd'; 186 $license->fullname = 'Creative Commons - No Commercial NoDerivs'; 187 $license->source = 'http://creativecommons.org/licenses/by-nc-nd/3.0/'; 188 $license->enabled = 1; 189 $license->version = '2010033100'; 190 $active_licenses[] = $license->shortname; 191 self::add($license); 192 193 $license->shortname = 'cc-nc'; 194 $license->fullname = 'Creative Commons - No Commercial'; 195 $license->source = 'http://creativecommons.org/licenses/by-nc/3.0/'; 196 $license->enabled = 1; 197 $license->version = '2013051500'; 198 $active_licenses[] = $license->shortname; 199 self::add($license); 200 201 $license->shortname = 'cc-nc-sa'; 202 $license->fullname = 'Creative Commons - No Commercial ShareAlike'; 203 $license->source = 'http://creativecommons.org/licenses/by-nc-sa/3.0/'; 204 $license->enabled = 1; 205 $license->version = '2010033100'; 206 $active_licenses[] = $license->shortname; 207 self::add($license); 208 209 $license->shortname = 'cc-sa'; 210 $license->fullname = 'Creative Commons - ShareAlike'; 211 $license->source = 'http://creativecommons.org/licenses/by-sa/3.0/'; 212 $license->enabled = 1; 213 $license->version = '2010033100'; 214 $active_licenses[] = $license->shortname; 215 self::add($license); 216 217 set_config('licenses', implode(',', $active_licenses)); 218 } 219 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |