MDL-28705 enrol_imsenterprise Refining provided patch
[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
87 /**
88  * Mapping between Moodle course attributes and IMS enterprise group description tags
89  *
90  * @package   enrol_imsenterprise
91  * @copyright 2011 Aaron C Spike
92  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
93  */
94 class imsenterprise_courses {
96     private $imsnames;
97     private $courseattrs;
99     /**
100      * Loads default
101      */
102     function __construct() {
103         $this->imsnames = array(
104             'short' => 'short',
105             'long' => 'long',
106             'full' => 'full',
107             'coursecode' => 'coursecode');
108         $this->courseattrs = array('shortname', 'fullname', 'summary');
109     }
111     /**
112      * Returns the assignable values for the course attribute
113      * @param string $courseattr The course attribute (shortname, fullname...)
114      * @return array Array of assignable values
115      */
116     function get_imsnames($courseattr) {
117 \r
118         $values = $this->imsnames;\r
119         if ($courseattr == 'summary') {\r
120             $values = array_merge(array('ignore' => get_string('emptyattribute', 'enrol_imsenterprise')), $values);
121         }
122         return $values;
123     }
125     /**
126      * courseattrs getter
127      * @return array
128      */
129     function get_courseattrs() {
130         return $this->courseattrs;
131     }
133     /**
134      * This function is only used when first setting up the plugin, to
135      * decide which name assignments to recommend by default.
136      *
137      * @param string $coursename
138      * @return string
139      */
140     function determine_default_coursemapping($courseattr) {
141         switch($courseattr) {
142             case 'fullname':
143                 $imsname = 'short';
144                 break;
145             case 'shortname':
146                 $imsname = 'coursecode';
147                 break;
148             default:
149                 $imsname = 'ignore';
150         }
152         return $imsname;
153     }
155 }  // class