| [ Index ] |
PHP Cross Reference of Moodle 1.9.3 [Build 15-Oct-2008] |
[Summary view] [Print] [Text view]
1 <?php // $Id: mod_form.php,v 1.20.2.3 2008/07/26 15:17:03 skodak Exp $ 2 /** 3 * Form to define a new instance of lesson or edit an instance. 4 * It is used from /course/modedit.php. 5 * 6 * @version $Id: mod_form.php,v 1.20.2.3 2008/07/26 15:17:03 skodak Exp $ 7 * @license http://www.gnu.org/copyleft/gpl.html GNU Public License 8 * @package lesson 9 **/ 10 11 require_once($CFG->dirroot.'/course/moodleform_mod.php'); 12 require_once ('locallib.php'); 13 14 class mod_lesson_mod_form extends moodleform_mod { 15 16 function definition() { 17 global $CFG, $LESSON_NEXTPAGE_ACTION, $COURSE; 18 19 $mform =& $this->_form; 20 21 //------------------------------------------------------------------------------- 22 $mform->addElement('header', 'general', get_string('general', 'form')); 23 24 $mform->addElement('text', 'name', get_string('name'), array('size'=>'64')); 25 if (!empty($CFG->formatstringstriptags)) { 26 $mform->setType('name', PARAM_TEXT); 27 } else { 28 $mform->setType('name', PARAM_CLEAN); 29 } 30 $mform->addRule('name', null, 'required', null, 'client'); 31 32 // Create a text box that can be enabled/disabled for lesson time limit 33 $timedgrp = array(); 34 $timedgrp[] = &$mform->createElement('text', 'maxtime'); 35 $timedgrp[] = &$mform->createElement('checkbox', 'timed', '', get_string('enable')); 36 $mform->addGroup($timedgrp, 'timedgrp', get_string('maxtime', 'lesson'), array(' '), false); 37 $mform->disabledIf('timedgrp', 'timed'); 38 39 // Add numeric rule to text field 40 $timedgrprules = array(); 41 $timedgrprules['maxtime'][] = array(null, 'numeric', null, 'client'); 42 $mform->addGroupRule('timedgrp', $timedgrprules); 43 44 // Rest of group setup 45 $mform->setDefault('timed', 0); 46 $mform->setDefault('maxtime', 20); 47 $mform->setType('maxtime', PARAM_INT); 48 $mform->setHelpButton('timedgrp', array('timed', get_string('timed', 'lesson'), 'lesson')); 49 50 $numbers = array(); 51 for ($i=20; $i>1; $i--) { 52 $numbers[$i] = $i; 53 } 54 $mform->addElement('select', 'maxanswers', get_string('maximumnumberofanswersbranches', 'lesson'), $numbers); 55 $mform->setDefault('maxanswers', 4); 56 $mform->setHelpButton('maxanswers', array('maxanswers', get_string('maximumnumberofanswersbranches', 'lesson'), 'lesson')); 57 58 //------------------------------------------------------------------------------- 59 $mform->addElement('header', '', get_string('gradeoptions', 'lesson')); 60 61 $mform->addElement('selectyesno', 'practice', get_string('practice', 'lesson')); 62 $mform->setHelpButton('practice', array('practice', get_string('practice', 'lesson'), 'lesson')); 63 $mform->setDefault('practice', 0); 64 65 $mform->addElement('selectyesno', 'custom', get_string('customscoring', 'lesson')); 66 $mform->setHelpButton('custom', array('custom', get_string('customscoring', 'lesson'), 'lesson')); 67 $mform->setDefault('custom', 1); 68 69 $grades = array(); 70 for ($i=100; $i>=0; $i--) { 71 $grades[$i] = $i; 72 } 73 $mform->addElement('select', 'grade', get_string('maximumgrade'), $grades); 74 $mform->setDefault('grade', 0); 75 $mform->setHelpButton('grade', array('grade', get_string('maximumgrade'), 'lesson')); 76 77 $mform->addElement('selectyesno', 'retake', get_string('canretake', 'lesson', $COURSE->student)); 78 $mform->setHelpButton('retake', array('retake', get_string('canretake', 'lesson', $COURSE->student), 'lesson')); 79 $mform->setDefault('retake', 0); 80 81 $options = array(); 82 $options[0] = get_string('usemean', 'lesson'); 83 $options[1] = get_string('usemaximum', 'lesson'); 84 $mform->addElement('select', 'usemaxgrade', get_string('handlingofretakes', 'lesson'), $options); 85 $mform->setHelpButton('usemaxgrade', array('handlingofretakes', get_string('handlingofretakes', 'lesson'), 'lesson')); 86 $mform->setDefault('usemaxgrade', 0); 87 88 $mform->addElement('selectyesno', 'ongoing', get_string('ongoing', 'lesson')); 89 $mform->setHelpButton('ongoing', array('ongoing', get_string('ongoing', 'lesson'), 'lesson')); 90 $mform->setDefault('ongoing', 0); 91 92 //------------------------------------------------------------------------------- 93 $mform->addElement('header', '', get_string('flowcontrol', 'lesson')); 94 95 $mform->addElement('selectyesno', 'modattempts', get_string('modattempts', 'lesson')); 96 $mform->setHelpButton('modattempts', array('modattempts', get_string('modattempts', 'lesson'), 'lesson')); 97 $mform->setDefault('modattempts', 0); 98 99 $mform->addElement('selectyesno', 'review', get_string('displayreview', 'lesson')); 100 $mform->setHelpButton('review', array('review', get_string('displayreview', 'lesson'), 'lesson')); 101 $mform->setDefault('review', 0); 102 103 $numbers = array(); 104 for ($i=10; $i>0; $i--) { 105 $numbers[$i] = $i; 106 } 107 $mform->addElement('select', 'maxattempts', get_string('maximumnumberofattempts', 'lesson'), $numbers); 108 $mform->setHelpButton('maxattempts', array('maxattempts', get_string('maximumnumberofattempts', 'lesson'), 'lesson')); 109 $mform->setDefault('maxattempts', 1); 110 111 $mform->addElement('select', 'nextpagedefault', get_string('actionaftercorrectanswer', 'lesson'), $LESSON_NEXTPAGE_ACTION); 112 $mform->setHelpButton('nextpagedefault', array('nextpageaction', get_string('actionaftercorrectanswer', 'lesson'), 'lesson')); 113 $mform->setDefault('nextpagedefault', 0); 114 115 $mform->addElement('selectyesno', 'feedback', get_string('displaydefaultfeedback', 'lesson')); 116 $mform->setHelpButton('feedback', array('feedback', get_string('displaydefaultfeedback', 'lesson'), 'lesson')); 117 $mform->setDefault('feedback', 0); 118 119 $numbers = array(); 120 for ($i = 100; $i >= 0; $i--) { 121 $numbers[$i] = $i; 122 } 123 $mform->addElement('select', 'minquestions', get_string('minimumnumberofquestions', 'lesson'), $numbers); 124 $mform->setHelpButton('minquestions', array('minquestions', get_string('minimumnumberofquestions', 'lesson'), 'lesson')); 125 $mform->setDefault('minquestions', 0); 126 127 $numbers = array(); 128 for ($i = 100; $i >= 0; $i--) { 129 $numbers[$i] = $i; 130 } 131 $mform->addElement('select', 'maxpages', get_string('numberofpagestoshow', 'lesson'), $numbers); 132 $mform->setHelpButton('maxpages', array('maxpages', get_string('numberofpagestoshow', 'lesson'), 'lesson')); 133 $mform->setDefault('maxpages', 0); 134 135 //------------------------------------------------------------------------------- 136 $mform->addElement('header', '', get_string('lessonformating', 'lesson')); 137 138 $mform->addElement('selectyesno', 'slideshow', get_string('slideshow', 'lesson')); 139 $mform->setHelpButton('slideshow', array('slideshow', get_string('slideshow', 'lesson'), 'lesson')); 140 $mform->setDefault('slideshow', 0); 141 142 $mform->addElement('text', 'width', get_string('slideshowwidth', 'lesson')); 143 $mform->setDefault('width', 640); 144 $mform->addRule('width', null, 'required', null, 'client'); 145 $mform->addRule('width', null, 'numeric', null, 'client'); 146 $mform->setHelpButton('width', array('width', get_string('slideshowwidth', 'lesson'), 'lesson')); 147 $mform->setType('width', PARAM_INT); 148 149 $mform->addElement('text', 'height', get_string('slideshowheight', 'lesson')); 150 $mform->setDefault('height', 480); 151 $mform->addRule('height', null, 'required', null, 'client'); 152 $mform->addRule('height', null, 'numeric', null, 'client'); 153 $mform->setHelpButton('height', array('height', get_string('slideshowheight', 'lesson'), 'lesson')); 154 $mform->setType('height', PARAM_INT); 155 156 $mform->addElement('text', 'bgcolor', get_string('slideshowbgcolor', 'lesson')); 157 $mform->setDefault('bgcolor', '#FFFFFF'); 158 $mform->addRule('bgcolor', null, 'required', null, 'client'); 159 $mform->setHelpButton('bgcolor', array('bgcolor', get_string('slideshowbgcolor', 'lesson'), 'lesson')); 160 $mform->setType('bgcolor', PARAM_TEXT); 161 162 $mform->addElement('selectyesno', 'displayleft', get_string('displayleftmenu', 'lesson')); 163 $mform->setHelpButton('displayleft', array('displayleft', get_string('displayleftmenu', 'lesson'), 'lesson')); 164 $mform->setDefault('displayleft', 0); 165 166 $options = array(); 167 for($i = 100; $i >= 0; $i--) { 168 $options[$i] = $i.'%'; 169 } 170 $mform->addElement('select', 'displayleftif', get_string('displayleftif', 'lesson'), $options); 171 $mform->setDefault('displayleftif', 0); 172 173 $mform->addElement('selectyesno', 'progressbar', get_string('progressbar', 'lesson')); 174 $mform->setHelpButton('progressbar', array('progressbar', get_string('progressbar', 'lesson'), 'lesson')); 175 $mform->setDefault('progressbar', 0); 176 177 178 //------------------------------------------------------------------------------- 179 $mform->addElement('header', '', get_string('accesscontrol', 'lesson')); 180 181 $mform->addElement('selectyesno', 'usepassword', get_string('usepassword', 'lesson')); 182 $mform->setHelpButton('usepassword', array('usepassword', get_string('usepassword', 'lesson'), 'lesson')); 183 $mform->setDefault('usepassword', 0); 184 185 $mform->addElement('text', 'password', get_string('password', 'lesson')); 186 $mform->setHelpButton('password', array('password', get_string('password', 'lesson'), 'lesson')); 187 $mform->setDefault('password', ''); 188 //never displayed converted to md5 189 $mform->setType('password', PARAM_RAW); 190 191 $mform->addElement('date_time_selector', 'available', get_string('available', 'lesson'), array('optional'=>true)); 192 $mform->setDefault('available', 0); 193 194 $mform->addElement('date_time_selector', 'deadline', get_string('deadline', 'lesson'), array('optional'=>true)); 195 $mform->setDefault('deadline', 0); 196 197 //------------------------------------------------------------------------------- 198 $mform->addElement('header', '', get_string('dependencyon', 'lesson')); 199 200 $options = array(0=>get_string('none')); 201 if ($lessons = get_all_instances_in_course('lesson', $COURSE)) { 202 foreach($lessons as $lesson) { 203 if ($lesson->id != $this->_instance){ 204 $options[$lesson->id] = format_string($lesson->name, true); 205 } 206 207 } 208 } 209 $mform->addElement('select', 'dependency', get_string('dependencyon', 'lesson'), $options); 210 $mform->setHelpButton('dependency', array('dependency', get_string('dependencyon', 'lesson'), 'lesson')); 211 $mform->setDefault('dependency', 0); 212 213 $mform->addElement('text', 'timespent', get_string('timespentminutes', 'lesson')); 214 $mform->setDefault('timespent', 0); 215 $mform->setType('timespent', PARAM_INT); 216 217 $mform->addElement('checkbox', 'completed', get_string('completed', 'lesson')); 218 $mform->setDefault('completed', 0); 219 220 $mform->addElement('text', 'gradebetterthan', get_string('gradebetterthan', 'lesson')); 221 $mform->setDefault('gradebetterthan', 0); 222 $mform->setType('gradebetterthan', PARAM_INT); 223 224 //------------------------------------------------------------------------------- 225 $mform->addElement('header', '', get_string('mediafile', 'lesson')); 226 227 $mform->addElement('choosecoursefile', 'mediafile', get_string('mediafile', 'lesson'), array('courseid'=>$COURSE->id)); 228 $mform->setHelpButton('mediafile', array('mediafile', get_string('mediafile', 'lesson'), 'lesson')); 229 $mform->setDefault('mediafile', ''); 230 $mform->setType('mediafile', PARAM_RAW); 231 232 $mform->addElement('selectyesno', 'mediaclose', get_string('mediaclose', 'lesson')); 233 $mform->setDefault('mediaclose', 0); 234 235 $mform->addElement('text', 'mediaheight', get_string('mediaheight', 'lesson')); 236 $mform->setHelpButton('mediaheight', array('mediaheight', get_string('mediaheight', 'lesson'), 'lesson')); 237 $mform->setDefault('mediaheight', 100); 238 $mform->addRule('mediaheight', null, 'required', null, 'client'); 239 $mform->addRule('mediaheight', null, 'numeric', null, 'client'); 240 $mform->setType('mediaheight', PARAM_INT); 241 242 $mform->addElement('text', 'mediawidth', get_string('mediawidth', 'lesson')); 243 $mform->setHelpButton('mediawidth', array('mediawidth', get_string('mediawidth', 'lesson'), 'lesson')); 244 $mform->setDefault('mediawidth', 650); 245 $mform->addRule('mediawidth', null, 'required', null, 'client'); 246 $mform->addRule('mediawidth', null, 'numeric', null, 'client'); 247 $mform->setType('mediawidth', PARAM_INT); 248 249 //------------------------------------------------------------------------------- 250 $mform->addElement('header', '', get_string('other', 'lesson')); 251 252 // get the modules 253 if ($mods = get_course_mods($COURSE->id)) { 254 $modinstances = array(); 255 foreach ($mods as $mod) { 256 257 // get the module name and then store it in a new array 258 if ($module = get_coursemodule_from_instance($mod->modname, $mod->instance, $COURSE->id)) { 259 if (isset($this->_cm->id) and $this->_cm->id != $mod->id){ 260 $modinstances[$mod->id] = $mod->modname.' - '.$module->name; 261 } 262 } 263 } 264 asort($modinstances); // sort by module name 265 $modinstances=array(0=>get_string('none'))+$modinstances; 266 267 $mform->addElement('select', 'activitylink', get_string('activitylink', 'lesson'), $modinstances); 268 $mform->setHelpButton('activitylink', array('activitylink', get_string('activitylink', 'lesson'), 'lesson')); 269 $mform->setDefault('activitylink', 0); 270 271 } 272 273 $mform->addElement('text', 'maxhighscores', get_string('maxhighscores', 'lesson')); 274 $mform->setHelpButton('maxhighscores', array('maxhighscores', get_string('maxhighscores', 'lesson'), 'lesson')); 275 $mform->setDefault('maxhighscores', 10); 276 $mform->addRule('maxhighscores', null, 'required', null, 'client'); 277 $mform->addRule('maxhighscores', null, 'numeric', null, 'client'); 278 $mform->setType('maxhighscores', PARAM_INT); 279 280 $mform->addElement('selectyesno', 'lessondefault', get_string('lessondefault', 'lesson')); 281 $mform->setHelpButton('lessondefault', array('lessondefault', get_string('lessondefault', 'lesson'), 'lesson')); 282 $mform->setDefault('lessondefault', 0); 283 284 //------------------------------------------------------------------------------- 285 $features = new stdClass; 286 $features->groups = false; 287 $features->groupings = true; 288 $features->groupmembersonly = true; 289 $this->standard_coursemodule_elements($features); 290 //------------------------------------------------------------------------------- 291 // buttons 292 $this->add_action_buttons(); 293 } 294 295 /** 296 * Enforce defaults here 297 * 298 * @param array $default_values Form defaults 299 * @return void 300 **/ 301 function data_preprocessing(&$default_values) { 302 if (isset($default_values['conditions'])) { 303 $conditions = unserialize($default_values['conditions']); 304 $default_values['timespent'] = $conditions->timespent; 305 $default_values['completed'] = $conditions->completed; 306 $default_values['gradebetterthan'] = $conditions->gradebetterthan; 307 } 308 if (isset($default_values['password'])) { 309 unset($default_values['password']); 310 } 311 if (isset($default_values['add']) and $defaults = get_record('lesson_default', 'course', $default_values['course'])) { 312 foreach ($defaults as $fieldname => $default) { 313 switch ($fieldname) { 314 case 'conditions': 315 $conditions = unserialize($default); 316 $default_values['timespent'] = $conditions->timespent; 317 $default_values['completed'] = $conditions->completed; 318 $default_values['gradebetterthan'] = $conditions->gradebetterthan; 319 break; 320 default: 321 $default_values[$fieldname] = $default; 322 break; 323 } 324 } 325 } 326 } 327 328 /** 329 * Enforce validation rules here 330 * 331 * @param object $data Post data to validate 332 * @return array 333 **/ 334 function validation($data, $files) { 335 $errors = parent::validation($data, $files); 336 337 if (empty($data['maxtime']) and !empty($data['timed'])) { 338 $errors['timedgrp'] = get_string('err_numeric', 'form'); 339 } 340 341 return $errors; 342 } 343 } 344 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Wed Jan 14 11:33:29 2009 | Cross-referenced by PHPXref 0.7 |