[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/lib/ -> licenselib.php (source)

   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  }


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1