[ Index ]

PHP Cross Reference of Moodle 1.9.3 [Build 15-Oct-2008]

title

Body

[close]

/mod/lesson/ -> mod_form.php (source)

   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  ?>


Generated: Wed Jan 14 11:33:29 2009 Cross-referenced by PHPXref 0.7