8b21ec10b4992a9e2c95d7313e1ea4eb55e787e7
[moodle.git] / enrol / imsenterprise / locallib.php
1 <?php
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/>.
18 /**
19  * IMS Enterprise enrol plugin implementation.
20  *
21  * @package    enrol
22  * @subpackage imsenterprise
23  * @copyright  2010 Eugene Venter
24  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25  */
27 defined('MOODLE_INTERNAL') || die();
30 class imsenterprise_roles {
31     private $imsroles;
33     function __construct() {
34         $this->imsroles = array(
35         '01'=>'Learner',
36         '02'=>'Instructor',
37         '03'=>'Content Developer',
38         '04'=>'Member',
39         '05'=>'Manager',
40         '06'=>'Mentor',
41         '07'=>'Administrator',
42         '08'=>'TeachingAssistant',
43         );
44         // PLEASE NOTE: It may seem odd that "Content Developer" has a space in it
45         // but "TeachingAssistant" doesn't. That's what the spec says though!!!
46     }
48     function get_imsroles() {
49         return $this->imsroles;
50     }
52     /**
53     * This function is only used when first setting up the plugin, to
54     * decide which role assignments to recommend by default.
55     * For example, IMS role '01' is 'Learner', so may map to 'student' in Moodle.
56     */
57     function determine_default_rolemapping($imscode) {
58         global $DB;
60         switch($imscode) {
61             case '01':
62             case '04':
63                 $shortname = 'student';
64                 break;
65             case '06':
66             case '08':
67                 $shortname = 'teacher';
68                 break;
69             case '02':
70             case '03':
71                 $shortname = 'editingteacher';
72                 break;
73             case '05':
74             case '07':
75                 $shortname = 'admin';
76                 break;
77             default:
78                 return 0; // Zero for no match
79         }
80         return (string)$DB->get_field('role', 'id', array('shortname'=>$shortname));
81     }
84 }  // class
86 class imsenterprise_names {
87     private $imsnames;
88     private $coursenames;
90     function __construct() {
91         $this->imsnames = array(
92         'long'=>'long', 
93         'short'=>'short', 
94         'full'=>'full', 
95         'coursecode'=>'coursecode',
96         );
97         $this->coursenames = array('fullname', 'shortname', 'summary');
98     }
100     function get_imsnames() {
101         return $this->imsnames;
102     }
104     function get_coursenames() {
105         return $this->coursenames;
106     }
108     /**
109     * This function is only used when first setting up the plugin, to
110     * decide which name assignments to recommend by default.
111     */
112     function determine_default_namemapping($coursename) {
113         switch($coursename) {
114             case 'fullname':
115                 $imsname = 'short';
116                 break;
117             case 'shortname':
118                 $imsname = 'coursecode';
119                 break;
120             default:
121                 return 'ignore'; // Zero for no match
122         }
123         return $imsname;
124     }
127 }  // class