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 * @package backup-convert 19 * @subpackage cc-library 20 * @copyright 2011 Darko Miletic <dmiletic@moodlerooms.com> 21 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 22 */ 23 24 25 26 /** 27 Defined as specified in CC 1.1 28 */ 29 class intended_user_role { 30 const LEARNER = 'Learner'; 31 const INSTRUCTOR = 'Instructor'; 32 const MENTOR = 'Mentor'; 33 } 34 35 class technical_role { 36 const AUTHOR = 'author'; 37 const PUBLISHER = 'publisher'; 38 const UNKNOWN = 'unknown'; 39 const INITIATOR = 'initiator'; 40 const TERMINATOR = 'terminator'; 41 const VALIDATOR = 'validator'; 42 const EDITOR = 'editor'; 43 const GRAPHICAL_DESIGNER = 'graphical designer'; 44 const TECHNICAL_IMPLEMENTER = 'technical implementer'; 45 const CONTENT_PROVIDER = 'content provider'; 46 const TECHNICAL_VALIDATOR = 'technical validator'; 47 const EDUCATION_VALIDATOR = 'educational validator'; 48 const SCRIPT_WRITER = 'script writer'; 49 const INSTRUCTIONAL_DESIGNER= 'instructional designer'; 50 const SUBJET_MATTER_EXPERT = 'subject matter expert'; 51 } 52 53 54 class rights_copyright { 55 const YES = 'yes'; 56 const NO = 'no'; 57 } 58 59 60 class rights_cost { 61 const YES = 'yes'; 62 const NO = 'no'; 63 } 64 65 66 // Language identifier (as defined in ISO 639-1, ISO 639-2, and ISO 3166-1) 67 class language_lom { 68 const US_ENGLISH = 'en-US'; 69 const GB_ENGLISH = 'en-GB'; 70 const AR_SPANISH = 'es-AR'; 71 const GR_GREEK = 'el-GR'; 72 73 } 74 75 76 77 /** 78 * Metadata Manifest 79 * 80 */ 81 class cc_metadata_manifest implements cc_i_metadata_manifest { 82 83 84 public $arraygeneral = array(); 85 public $arraytech = array(); 86 public $arrayrights = array(); 87 public $arraylifecycle = array(); 88 89 90 public function add_metadata_general($obj){ 91 if (empty($obj)){ 92 throw new Exception('Medatada Object given is invalid or null!'); 93 } 94 !is_null($obj->title)? $this->arraygeneral['title']=$obj->title:null; 95 !is_null($obj->language)? $this->arraygeneral['language']=$obj->language:null; 96 !is_null($obj->description)? $this->arraygeneral['description']=$obj->description:null; 97 !is_null($obj->keyword)? $this->arraygeneral['keyword']=$obj->keyword:null; 98 !is_null($obj->coverage)? $this->arraygeneral['coverage']=$obj->coverage:null; 99 !is_null($obj->catalog)? $this->arraygeneral['catalog']=$obj->catalog:null; 100 !is_null($obj->entry)? $this->arraygeneral['entry']=$obj->entry:null; 101 } 102 103 public function add_metadata_technical($obj){ 104 if (empty($obj)){ 105 throw new Exception('Medatada Object given is invalid or null!'); 106 } 107 !is_null($obj->format)? $this->arraytech['format']=$obj->format:null; 108 } 109 110 111 public function add_metadata_rights($obj){ 112 if (empty($obj)){ 113 throw new Exception('Medatada Object given is invalid or null!'); 114 } 115 !is_null($obj->copyright)? $this->arrayrights['copyrightAndOtherRestrictions']=$obj->copyright:null; 116 !is_null($obj->description)? $this->arrayrights['description']=$obj->description:null; 117 !is_null($obj->cost)? $this->arrayrights['cost']=$obj->cost:null; 118 119 } 120 121 122 public function add_metadata_lifecycle($obj){ 123 if (empty($obj)){ 124 throw new Exception('Medatada Object given is invalid or null!'); 125 } 126 !is_null($obj->role)? $this->arraylifecycle['role']=$obj->role:null; 127 !is_null($obj->entity)? $this->arraylifecycle['entity']=$obj->entity:null; 128 !is_null($obj->date)? $this->arraylifecycle['date']=$obj->date:null; 129 130 } 131 132 } 133 134 135 /** 136 * Metadata Lifecycle Type 137 * 138 */ 139 class cc_metadata_lifecycle{ 140 141 public $role = array(); 142 public $entity = array(); 143 public $date = array(); 144 145 public function set_role($role){ 146 $this->role[] = array($role); 147 } 148 public function set_entity($entity){ 149 $this->entity[] = array($entity); 150 } 151 public function set_date($date){ 152 $this->date[] = array($date); 153 } 154 155 156 } 157 158 /** 159 * Metadata Rights Type 160 * 161 */ 162 class cc_metadata_rights { 163 164 public $copyright = array(); 165 public $description = array(); 166 public $cost = array(); 167 168 public function set_copyright($copy){ 169 $this->copyright[] = array($copy); 170 } 171 public function set_description ($des,$language){ 172 $this->description[] = array($language,$des); 173 } 174 public function set_cost($cost){ 175 $this->cost[] = array($cost); 176 } 177 178 } 179 180 181 /** 182 * Metadata Technical Type 183 * 184 */ 185 class cc_metadata_technical { 186 187 public $format = array(); 188 189 190 public function set_format($format){ 191 $this->format[] = array($format); 192 } 193 194 } 195 196 197 /** 198 * Metadata General Type 199 * 200 */ 201 class cc_metadata_general { 202 203 public $title = array(); 204 public $language = array(); 205 public $description = array(); 206 public $keyword = array(); 207 public $coverage = array(); 208 public $catalog = array(); 209 public $entry = array(); 210 211 212 213 public function set_coverage ($coverage,$language){ 214 $this->coverage[] = array($language,$coverage); 215 } 216 public function set_description ($description,$language){ 217 $this->description[] = array($language,$description); 218 } 219 public function set_keyword ($keyword,$language){ 220 $this->keyword[] = array($language,$keyword); 221 } 222 public function set_language ($language){ 223 $this->language[] = array($language); 224 } 225 public function set_title ($title,$language){ 226 $this->title[] = array($language,$title); 227 } 228 public function set_catalog ($cat){ 229 $this->catalog[] = array($cat); 230 } 231 public function set_entry ($entry){ 232 $this->entry[] = array($entry); 233 } 234 235 236 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body