]> git.mjollnir.org Git - moodle.git/commitdiff
added new dummy function to moodleform to allow some defintion to be done for the...
authorjamiesensei <jamiesensei>
Mon, 16 Oct 2006 12:07:44 +0000 (12:07 +0000)
committerjamiesensei <jamiesensei>
Mon, 16 Oct 2006 12:07:44 +0000 (12:07 +0000)
course/edit3.php [deleted file]
course/edit_form.php
course/edit_form3.php [deleted file]
lib/formslib.php

diff --git a/course/edit3.php b/course/edit3.php
deleted file mode 100644 (file)
index 4c5ef3d..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-<?php // $Id$
-      // Edit course settings
-
-    require_once("../config.php");
-    require_once("lib.php");
-    require_once("$CFG->libdir/blocklib.php");
-    require_once("$CFG->dirroot/enrol/enrol.class.php");
-
-    include_once $CFG->libdir.'/formslib.php';
-
-    require_login();
-
-
-
-    $id       =optional_param('id', 0, PARAM_INT); // course id
-    $category =optional_param('category', 0, PARAM_INT); // possible default category
-
-    $disable_meta = false;
-    
-    if ($id) {
-        if (! $course = get_record("course", "id", $id)) {
-            error("Course ID was incorrect");
-        }
-
-               $context = get_context_instance(CONTEXT_COURSE, $course->id);
-               
-        if (!has_capability('moodle/course:update', $context)) {
-            error("You do not currently have editing privileges!");
-        }
-        
-        if (course_in_meta($course)) {
-            $disable_meta = get_string('metaalreadyinmeta');
-        } else if ($course->metacourse) {
-            if (count_records("course_meta","parent_course",$course->id) > 0) {
-                $disable_meta = get_string('metaalreadyhascourses');
-            }
-        } else {
-            $managers = count(get_users_by_capability($context, 'moodle/course:managemetacourse'));
-            $participants = count(get_users_by_capability($context, 'moodle/course:view'));
-            if ($participants > $managers) {
-                $disable_meta = get_string('metaalreadyhasenrolments');
-            }
-        }
-    } else {  // Admin is creating a new course
-
-               $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
-               if (!has_capability('moodle/course:create',$context)) {
-            error("You do not currently have course creation privileges!");
-        }
-
-        $course = NULL;
-    }
-
-    if (! $site = get_site()) {
-        redirect("$CFG->wwwroot/$CFG->admin/index.php");
-    }
-
-    include("edit_form3.php");
-    $editform =& new course_edit_form('edit3.php', 
-            compact('id', 'category',
-            'CFG', 'context', 'course',
-            'disable_meta' ));
-
-/// If data submitted, then process and store.
-// data_submitted tries to validate form data and returns false if 
-// the user inputted data is invalid and the form should be redisplayed with 
-// feedback.
-
-    if ($fromform=$editform->data_submitted()) {
-
-        
-        if (!empty($fromform->enrolstartdisabled)){
-            $fromform->enrolstartdate = 0;
-        }
-
-        if (!empty($fromform->enrolenddisabled)) {
-            $fromform->enrolenddate = 0;
-        }
-        $allowedmods = array();
-        if (!empty($fromform->allowedmods)) {
-            $allowedmods = $fromform->allowedmods;
-            unset($fromform->allowedmods);
-        }
-        
-        $fromform->timemodified = time();
-
-        if ($fromform->defaultrole == -1) {   // Just leave it however it is
-            unset($fromform->defaultrole);
-        }        
-        if (!empty($course)) {
-            // Test for and remove blocks which aren't appropriate anymore
-            $page = page_create_object(PAGE_COURSE_VIEW, $course->id);
-            blocks_remove_inappropriate($page);
-
-            // Update with the new data
-            if (update_record('course', $fromform)) {
-                add_to_log($course->id, "course", "update", "edit.php?id=$id", "");
-                if (has_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM, SITEID))) {
-                    $course->restrictmodules = $fromform->restrictmodules;
-                    update_restricted_mods($course,$allowedmods);
-                }
-                fix_course_sortorder();
-                // everything ok, no need to display any message in redirect
-                redirect("view.php?id=$course->id");
-            } else {
-                error("Serious Error! Could not update the course record! (id = $fromform->id)");
-            }
-        } else {
-            $fromform->timecreated = time();
-
-            // place at beginning of category
-            fix_course_sortorder();
-            $fromform->sortorder = get_field_sql("SELECT min(sortorder)-1 FROM {$CFG->prefix}course WHERE category=$fromform->category");                
-            if (empty($fromform->sortorder)) {
-                $fromform->sortorder = 100;
-            }
-            // fill in default teacher and student names to keep backwards compatibility
-            $fromform->teacher = addslashes(get_string('defaultcourseteacher'));
-            $fromform->teachers = addslashes(get_string('defaultcourseteachers'));
-            $fromform->student = addslashes(get_string('defaultcoursestudent'));
-            $fromform->students = addslashes(get_string('defaultcoursestudents'));
-
-            if ($newcourseid = insert_record('course', $fromform)) {  // Set up new course
-                
-                // Setup the blocks
-                $page = page_create_object(PAGE_COURSE_VIEW, $newcourseid);
-                blocks_repopulate_page($page); // Return value not checked because you can always edit later
-
-                if (has_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM, SITEID))) {
-                    $course = get_record("course","id",$newcourseid);
-                    update_restricted_mods($course,$allowedmods);
-                }
-
-                $section = NULL;
-                $section->course = $newcourseid;   // Create a default section.
-                $section->section = 0;
-                $section->id = insert_record("course_sections", $section);
-
-                fix_course_sortorder();
-                add_to_log(SITEID, "course", "new", "view.php?id=$newcourseid", "$fromform->fullname (ID $newcourseid)")        ;
-                $context = get_context_instance(CONTEXT_COURSE, $newcourseid);
-
-                if ($fromform->metacourse and has_capability('moodle/course:managemetacourse', $context)) { // Redirect users with metacourse capability to student import
-                        redirect($CFG->wwwroot."/course/importstudents.php?id=$newcourseid");
-
-                } else if (has_capability('moodle/role:assign', $context)) { // Redirect users with assign capability to assign users to different roles
-                    redirect($CFG->wwwroot."/$CFG->admin/roles/assign.php?contextid=$context->id");
-
-                } else {          // Add current teacher and send to course
-
-                    // find a role with legacy:edittingteacher
-                    if ($teacherroles = get_roles_with_capability('moodle/legacy:editingteacher', CAP_ALLOW, $context)) {
-                        // assign the role to this user
-                        $teachereditrole = array_shift($teacherroles);
-                        role_assign($teachereditrole->id, $USER->id, 0, $context->id);
-                    }
-                    
-                    redirect("view.php?id=$newcourseid");
-                }
-
-
-            } else {
-                error("Serious Error! Could not create the new course!");
-            }
-        }
-        die;
-    }
-
-
-//print the form
-
-    $streditcoursesettings = get_string("editcoursesettings");
-    $straddnewcourse = get_string("addnewcourse");
-    $stradministration = get_string("administration");
-    $strcategories = get_string("categories");
-
-    if (!empty($course)) {
-        print_header($streditcoursesettings, "$course->fullname",
-                     "<a href=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</a>
-                      -> $streditcoursesettings", $focus);
-    } else {
-        print_header("$site->shortname: $straddnewcourse", "$site->fullname",
-                     "<a href=\"../$CFG->admin/index.php\">$stradministration</a> -> ".
-                     "<a href=\"index.php\">$strcategories</a> -> $straddnewcourse");
-    }
-
-
-    print_heading($streditcoursesettings);
-
-    $editform->display();
-    
-    print_footer($course);
-
-?>
\ No newline at end of file
index da3884348a863c8f8613c0b348082754b488982d..71e29854b5fd1099ace19698a98ec7a2f48b9fd1 100644 (file)
@@ -331,12 +331,10 @@ class course_edit_form extends moodleform {
                                 "((this.selectedIndex==0)?true:false);"));
             $mods = array(0=>get_string('allownone'));
             $mods += get_records_menu('modules', '','','','id, name');
-            $disabled=($mform->exportValue('restrictmodules')==1) ? array() :array('disabled' => 'disabled') ;
 
 
             $mform->addElement('select', 'allowedmods', get_string('to'),$mods,
-                            array('multiple'=>'multiple', 'size'=>'10', 'id'=>'allowedmods')
-                                    +$disabled);
+                            array('multiple'=>'multiple', 'size'=>'10', 'id'=>'allowedmods'));
         }else {
             $mform->addElement('hidden', 'restrictmodules', null);
         }
@@ -371,6 +369,18 @@ class course_edit_form extends moodleform {
             $this->set_defaults($course);
         }
 
+
+
+    }
+    function definition_after_data(){
+        
+        if ($this->_form->elementExists('allowedmods')){
+            if ($this->_form->exportValue('restrictmodules')!=1){
+                $this->_form->getElement('allowedmods')->
+                        updateAttributes(array('disabled' => 'disabled')) ;
+            }
+            
+        }
     }
 
 /// perform some extra moodle validation
diff --git a/course/edit_form3.php b/course/edit_form3.php
deleted file mode 100644 (file)
index 87b5833..0000000
+++ /dev/null
@@ -1,403 +0,0 @@
-<?php
-class course_edit_form extends moodleform {
-
-    function definition() {
-    /// For moodleform we reconstruct all the data about the form after submission before we
-    /// extract data submitted. So we can then tell for select, checkbox and radio fields what
-    /// options could have been submitted by the form eg submitted value for a single selection
-    /// select field must be one of the options of the select field.
-    
-    // $toform will be used for the default value of a field if no data has been submitted.
-    
-        //take contents of _customdata and make vars with same name as key.
-        /*$id = $this->_customdata['id'];
-        $CFG =& $this->_customdata['CFG'];
-        $context =& $this->_customdata['context'];*/
-        extract($this->_customdata);
-        $mform    =& $this->_form;
-        $renderer =& $mform->defaultRenderer();
-
-        if (!empty($course)) {
-            //this is what we do if we are editing a record from the db
-            $toform = $course;
-            $toform->allowedmods = array();
-            if ($am = get_records("course_allowed_modules","course",$course->id)) {
-                foreach ($am as $m) {
-                    $toform->allowedmods[] = $m->module;
-                }
-            } else {
-                if (empty($course->restrictmodules)) {
-                    $toform->allowedmods = explode(',',$CFG->defaultallowedmodules);
-                } // it'll be greyed out but we want these by default anyway.
-            }        
-        } else {
-            //this is a brand new course!
-            $toform->startdate = time() + 3600 * 24;
-            $toform->fullname = get_string("defaultcoursefullname");
-            $toform->shortname = get_string("defaultcourseshortname");
-            $toform->summary = get_string("defaultcoursesummary");
-            $toform->format = "weeks";
-            $toform->password = "";
-            $toform->guest = 0;
-            $toform->numsections = 10;
-            $toform->idnumber = '';
-            $toform->cost = '';
-            $toform->currency = empty($CFG->enrol_currency) ? 'USD' : $CFG->enrol_currency;
-            $toform->newsitems = 5;
-            $toform->showgrades = 1;
-            $toform->groupmode = 0;
-            $toform->groupmodeforce = 0;
-            $toform->category = $category;
-            $toform->id = "";
-            $toform->visible = 1;
-            $toform->allowedmods = array();
-            if ($CFG->restrictmodulesfor == 'all') {
-                $toform->allowedmods = explode(',',$CFG->defaultallowedmodules);
-                if (!empty($CFG->restrictbydefault)) {
-                    $toform->restrictmodules = 1;
-                }
-            }
-    
-    
-        }
-        
-        $mform->addElement('header','general', get_string("general"));
-        if (has_capability('moodle/course:create', get_context_instance(CONTEXT_COURSECAT, $toform->category))) { 
-            $displaylist = array();
-            $parentlist = array();
-            make_categories_list($displaylist, $parentlist);
-            $mform->addElement('select', "category", get_string("category"), $displaylist );
-        }
-        $mform->setHelpButton('category', array("coursecategory", get_string("category")));
-        
-        $mform->setDefault('fullname', $toform->fullname);
-        $mform->addElement('text','fullname', get_string("fullname"),'maxlength="254" size="50"');
-        $mform->setHelpButton('fullname', array("coursefullname", get_string("fullname")), true);
-        
-        $mform->setDefault('shortname', $toform->shortname);
-        $mform->addElement('text','shortname', get_string("shortname"),'maxlength="15" size="10"');
-        $mform->setHelpButton('shortname', array("courseshortname", get_string("shortname")), true);
-
-        $mform->setDefault('idnumber', $toform->idnumber);
-        $mform->addElement('text','idnumber', get_string("idnumbercourse"),'maxlength="100"  size="10"');
-        $mform->setHelpButton('idnumber', array("courseidnumber", get_string("idnumbercourse")), true);
-        
-        $mform->setDefault('summary', $toform->summary);
-        $mform->addElement('htmleditor','summary', get_string("summary"), array('rows'=> '10', 'cols'=>'65'));
-        $mform->setHelpButton('summary', array("text", get_string("helptext")), true);
-            
-        $mform->setDefault('format', $toform->format);
-        $courseformats = get_list_of_plugins("course/format");
-        $formcourseformats = array();
-    
-        foreach ($courseformats as $courseformat) {
-            $formcourseformats["$courseformat"] = get_string("format$courseformat");
-        }
-    
-        $mform->addElement('select', 'format', get_string("format"), $formcourseformats );
-        $mform->setHelpButton('format', array("courseformats", get_string("courseformats")), true);
-    
-        $mform->setDefault('numsections', $toform->numsections);
-        for ($i=1; $i<=52; $i++) {
-          $sectionmenu[$i] = "$i";
-        } 
-        $mform->addElement('select', 'numsections', get_string("numberweeks"), $sectionmenu);
-        $mform->setDefault('startdate', $toform->startdate);
-        $mform->addElement('date_selector', 'startdate', get_string('startdate'));
-        $mform->setHelpButton('startdate', array("coursestartdate", get_string("startdate")), true);
-    
-        $mform->setDefault('hiddensections',(isset($toform->hiddensections))?$toform->hiddensections:0);
-        unset($choices);
-        $choices["0"] = get_string("hiddensectionscollapsed");
-        $choices["1"] = get_string("hiddensectionsinvisible");
-        $mform->addElement('select', 'hiddensections', get_string("hiddensections"), $choices);
-        $mform->setHelpButton('hiddensections', array("coursehiddensections", get_string("hiddensections")), true);
-    
-        $mform->setDefault('newsitems', $toform->newsitems);
-        $newsitem = get_string("newsitem");
-        $newsitems = get_string("newsitems");
-        $options = array("0" => "0 $newsitems",
-                        "1" => "1 $newsitem",
-                        "2" => "2 $newsitems",
-                        "3" => "3 $newsitems",
-                        "4" => "4 $newsitems",
-                        "5" => "5 $newsitems",
-                        "6" => "6 $newsitems",
-                        "7" => "7 $newsitems",
-                        "8" => "8 $newsitems",
-                        "9" => "9 $newsitems",
-                        "10" => "10 $newsitems");
-        $mform->addElement('select', 'newsitems', get_string("newsitemsnumber"), $options);
-        $mform->setHelpButton('newsitems', array("coursenewsitems", get_string("newsitemsnumber")), true);
-    
-        $mform->setDefault('showgrades', $toform->showgrades);
-        unset($choices);
-        $choices["0"] = get_string("no");
-        $choices["1"] = get_string("yes");
-        $mform->addElement('select', 'showgrades', get_string("showgrades"), $choices);
-        $mform->setHelpButton('showgrades', array("coursegrades", get_string("grades")), true);
-
-        unset($choices);
-        $mform->setDefault('showreports',(isset($toform->showreports))?$toform->showreports:0);
-        $choices["0"] = get_string("no");
-        $choices["1"] = get_string("yes");
-        $mform->addElement('select', 'showreports', get_string("showreports"), $choices);
-        $mform->setHelpButton('showreports', array("coursereports", get_string("activityreport")), true);
-
-        $mform->setDefault('maxbytes',(isset($toform->maxbytes))?$toform->maxbytes:0);
-        $choices = get_max_upload_sizes($CFG->maxbytes);
-        $mform->addElement('select', 'maxbytes', get_string("maximumupload"), $choices);
-        $mform->setHelpButton('maxbytes', array("courseuploadsize", get_string("maximumupload")), true);
-
-        if (!empty($CFG->allowcoursethemes)) {
-            $mform->setDefault('theme',(isset($toform->theme))?$toform->theme:'');
-           
-            $themes=array();
-            $themes[''] = get_string("forceno");
-            $themes += get_list_of_themes();
-            $mform->addElement('select', 'theme', get_string("forcetheme"), $themes);
-        }
-        unset($choices);
-        $mform->setDefault('metacourse',(isset($toform->metacourse))?$toform->metacourse:0);
-    
-        if (empty($disable_meta)) {
-            $meta=array();
-            $meta[0] = get_string('no');
-            $meta[1] = get_string('yes');
-            $mform->addElement('select', 'metacourse', get_string("managemeta"), $meta);
-        }else{
-            $mform->addElement('static', 'metacourse', get_string("managemeta"), 
-                ((empty($toform->metacourse)) ? get_string("no") : get_string("yes"))
-                    . " - $disable_meta ");
-            
-        }
-        $mform->setHelpButton('metacourse', array("metacourse", get_string("metacourse")), true);
-        
-        $mform->setDefault('defaultrole',(isset($toform->defaultrole))?$toform->defaultrole:0);
-        $roles = get_assignable_roles($context);
-        asort($roles);
-        $choices = array();
-    
-        if ($sitedefaultrole = get_record('role', 'id', $CFG->defaultcourseroleid)) {
-            $choices[0] = get_string('sitedefault').' ('.$sitedefaultrole->name.')';
-        } else {
-            $choices[0] = get_string('sitedefault');
-        }
-    
-        $choices = $choices + $roles;    
-        $defaultroleelement=$mform->addElement('select', 'defaultrole', get_string('defaultrole', 'role'), $choices );
-        if ($mform->exportValue('defaultrole') && !isset($roles[$mform->exportValue('defaultrole')])) {  // Existing setting is one we can't choose
-            if ($coursedefaultrole = get_record('role', 'id', $mform->exportValue('defaultrole'))) {
-                
-                $defaultroleelement->addOption(get_string('currentrole', 'role').' ('.$coursedefaultrole->name.')',-1);
-            } else {
-                $defaultroleelement->addOption(get_string('currentrole', 'role'),-1);
-            }
-        }
-        $mform->setHelpButton('defaultrole', array("coursedefaultrole", get_string("defaultrole", 'role')), true);
-        
-    
-        $mform->addElement('header','enrolhdr', get_string("enrolment"));
-        $mform->setDefault('enrol',(isset($toform->enrol))?$toform->enrol:'');
-           
-        $modules = explode(',', $CFG->enrol_plugins_enabled);
-        foreach ($modules as $module) {
-            $name = get_string("enrolname", "enrol_$module");
-            $plugin = enrolment_factory::factory($module);
-            if (method_exists($plugin, 'print_entry')) {
-                $choices[$name] = $module;
-            }
-        }
-        asort($choices);
-        $choices = array_flip($choices);
-        $choices = array_merge(array('' => get_string('sitedefault').' ('.get_string("enrolname", "enrol_$CFG->enrol").')'), $choices);
-        $mform->addElement('select', 'enrol', get_string("enrolmentplugins"), $choices );
-        $mform->setHelpButton('enrol', array("courseenrolmentplugins", get_string("enrolmentplugins")), true);
-        
-        $mform->setDefault('enrollable',(isset($toform->enrollable))?$toform->enrollable:1);
-        $radio = array();
-        $radio[] = &MoodleQuickForm::createElement('radio', 'enrollable', null, get_string("no"), 0);
-        $radio[] = &MoodleQuickForm::createElement('radio', 'enrollable', null, get_string("yes"), 1);
-        $radio[] = &MoodleQuickForm::createElement('radio', 'enrollable', null, get_string("enroldate"), 2);
-        $mform->addGroup($radio, 'enrollable', get_string("enrollable"), ' ', false);
-        $mform->setHelpButton('enrollable', array("courseenrollable", get_string("enrollable")), true);
-        
-        $mform->setDefault('enrolstartdate',(isset($toform->enrolstartdate))?$toform->enrolstartdate:0);
-        $mform->setDefault('enrolstartdisabled',
-                                (!isset($toform->enrolstartdate)||
-                                    (isset($toform->enrolstartdate)&&!$toform->enrolstartdate)
-                                ?1:0));
-        $enroldatestartgrp = array();
-        $enroldatestartgrp[] = &MoodleQuickForm::createElement('date_selector', 'enrolstartdate');
-        $enroldatestartgrp[] = &MoodleQuickForm::createElement('checkbox', 'enrolstartdisabled', null, get_string('disable'));
-        $mform->addGroup($enroldatestartgrp, '', get_string('enrolstartdate'), ' ', false);
-        
-        $mform->setDefault('enrolenddate',(isset($toform->enrolenddate))?$toform->enrolenddate:0);
-        $mform->setDefault('enrolenddisabled',
-                                (!isset($toform->enrolenddate)||
-                                    (isset($toform->enrolenddate)&&!$toform->enrolenddate)
-                                ?1:0));
-        $enroldateendgrp = array();
-        $enroldateendgrp[] = &MoodleQuickForm::createElement('date_selector', 'enrolenddate');
-        $enroldateendgrp[] = &MoodleQuickForm::createElement('checkbox', 'enrolenddisabled', null, get_string('disable'));
-        $mform->addGroup($enroldateendgrp, 'enroldateendgrp', get_string('enrolenddate'), ' ', false);
-        
-        $mform->setDefault('enrolperiod',(isset($toform->enrolperiod))?$toform->enrolperiod:0);
-        $periodmenu=array();
-        $periodmenu[0] = get_string('unlimited');
-        for ($i=1; $i<=365; $i++) {
-            $seconds = $i * 86400;
-            $periodmenu[$seconds] = get_string('numdays', '', $i);
-        }
-        $mform->addElement('select', 'enrolperiod', get_string("enrolperiod"), $periodmenu);
-        
-        
-        $mform->addElement('header','expirynotifyhdr', get_string("expirynotify"));
-        
-        $mform->setDefault('expirynotify',(isset($toform->expirynotify))?$toform->expirynotify:0);
-        unset($choices);
-        $choices["0"] = get_string("no");
-        $choices["1"] = get_string("yes");
-        $mform->addElement('select', 'expirynotify', get_string("expirynotify"), $choices);
-        $mform->setDefault('notifystudents',(isset($toform->notifystudents))?$toform->notifystudents:0);
-        $mform->addElement('select', 'notifystudents', get_string("expirynotifystudents"), $choices);
-        $mform->setHelpButton('notifystudents', array("expirynotifystudents", get_string("expirynotifystudents")), true);
-        
-        $mform->setHelpButton('expirynotify', array("expirynotify", get_string("expirynotify")), true);
-        
-        $mform->setDefault('expirythreshold',(isset($toform->expirythreshold))?$toform->expirythreshold:10 * 86400);
-        $thresholdmenu=array();
-        for ($i=1; $i<=30; $i++) {
-            $seconds = $i * 86400;
-            $thresholdmenu[$seconds] = get_string('numdays', '', $i);
-        }
-        $mform->addElement('select', 'expirythreshold', get_string("expirythreshold"), $thresholdmenu);
-        $mform->setHelpButton('expirythreshold', array("expirythreshold", get_string("expirythreshold")), true);
-        
-        
-        $mform->addElement('header','', get_string("groupmode"));
-    
-        $mform->setDefault('groupmode', $toform->groupmode);
-        unset($choices);
-        $choices[NOGROUPS] = get_string("groupsnone");
-        $choices[SEPARATEGROUPS] = get_string("groupsseparate");
-        $choices[VISIBLEGROUPS] = get_string("groupsvisible");
-        $mform->addElement('select', 'groupmode', get_string("groupmode"), $choices);
-        $mform->setHelpButton('groupmode', array("groupmode", get_string("groupmode")), true);
-
-        $mform->setDefault('groupmodeforce', $toform->groupmodeforce);
-        unset($choices);
-        $choices["0"] = get_string("no");
-        $choices["1"] = get_string("yes");
-        $mform->addElement('select', 'groupmodeforce', get_string("force"), $choices);
-        $mform->setHelpButton('groupmodeforce', array("groupmodeforce", get_string("groupmodeforce")), true);
-    
-        $mform->addElement('header','', get_string("availability"));
-    
-        $mform->setDefault('visible', $toform->visible);
-        unset($choices);
-        $choices["0"] = get_string("courseavailablenot");
-        $choices["1"] = get_string("courseavailable");
-        $mform->addElement('select', 'visible', get_string("availability"), $choices);
-        $mform->setHelpButton('visible', array("courseavailability", get_string("availability")), true);
-
-        $mform->setDefault('password', $toform->password);
-        $mform->addElement('text', 'password', get_string("enrolmentkey"), 'size="25"');
-        $mform->setHelpButton('password', array("enrolmentkey", get_string("enrolmentkey")), true);
-
-        $mform->setDefault('guest', $toform->guest);
-        unset($choices);
-        $choices["0"] = get_string("guestsno");
-        $choices["1"] = get_string("guestsyes");
-        $choices["2"] = get_string("guestskey");
-        $mform->addElement('select', 'guest', get_string("opentoguests"), $choices);
-        $mform->setHelpButton('guest', array("guestaccess", get_string("opentoguests")), true);
-
-        if (isset($course) && method_exists(enrolment_factory::factory($course->enrol), 'print_entry') && $course->enrol != 'manual') {
-            $mform->setDefault('cost', $toform->cost);
-            $mform->setDefault('currency', $toform->currency);
-            $costgroup=array();
-            $currencies = get_list_of_currencies();
-            $costgroup[]= &MoodleQuickForm::createElement('text','cost', '', 'maxlength="6" size="6"');
-            $costgroup[]= &MoodleQuickForm::createElement('select', 'currency', '', $currencies);
-            $mform->addGroup($costgroup, 'costgrp', get_string("cost"), '&nbsp;', false);
-        }
-        $mform->setHelpButton('costgrp', array("cost", get_string("cost")), true);
-    
-        $mform->addElement('header','', get_string("language"));
-        $mform->setDefault('lang',(isset($toform->lang))?$toform->lang:'');
-        $languages=array();
-        $languages[''] = get_string("forceno");
-        $languages += get_list_of_languages();
-        $mform->addElement('select', 'lang', get_string("forcelanguage"), $languages);
-    
-        if(!has_capability('moodle/course:create', get_context_instance(CONTEXT_COURSECAT, $toform->category))) { 
-            $mform->addElement('hidden', 'category', null);
-        }
-        $mform->addElement('hidden', 'id', null);
-       
-        $mform->setDefault('restrictmodules',(isset($toform->restrictmodules))?$toform->restrictmodules:0);
-        if (has_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM, SITEID)) && ((!empty($course->requested) && $CFG->restrictmodulesfor == 'requested') || $CFG->restrictmodulesfor == 'all')) {         
-            unset($options);
-            $options[0] = get_string("no");
-            $options[1] = get_string("yes");
-            $mform->addElement('header', '', get_string("restrictmodules"));
-            $mform->addElement('select', 'restrictmodules', get_string("restrictmodules"), $options,
-                    array('onChange'=>"document.getElementById('id_allowedmods').disabled=".
-                                "((this.selectedIndex==0)?true:false);"));
-            $mods = array(0=>get_string('allownone'));
-            $mods += get_records_menu("modules", '','','','id, name');
-            $disabled=($mform->exportValue('restrictmodules')==1) ? array() :array('disabled' => 'disabled') ;
-            
-            
-            $mform->setDefault('allowedmods', $toform->allowedmods);
-            $mform->addElement('select', 'allowedmods', get_string("to"),$mods,
-                            array('multiple'=>"multiple", 'size'=>"10", 'id'=>"allowedmods")
-                                    +$disabled);
-        }else {
-            $mform->addElement('hidden', 'restrictmodules', $toform->restrictmodules);
-        }
-
-        $mform->addElement('submit', 'submit', get_string("savechanges"));
-        
-        $mform->addRule('fullname', get_string("missingfullname"), 'required', null, 'client');
-        $mform->addRule('shortname', get_string("missingshortname"), 'required', null, 'client');
-        $mform->addRule('summary', get_string("missingsummary"), 'required', null, 'client');
-        $mform->addRule('category', get_string("missingcategory"), 'required', null, 'client');
-        
-
-        //$mform->addFormRule('form_check');
-    
-        $renderer->addStopFieldsetElements('submit');        
-    }
-    function validation($fields){
-        $errors= array();
-        if ($foundcourses = get_records("course", "shortname", $fields['shortname'])) {
-            if (!empty($course->id)) {
-                unset($foundcourses[$course->id]);
-            }
-            if (!empty($foundcourses)) {
-                foreach ($foundcourses as $foundcourse) {
-                    $foundcoursenames[] = $foundcourse->fullname;
-                }
-                $foundcoursenamestring = implode(',', $foundcoursenames);
-        
-                $errors['shortname']= get_string("shortnametaken", "", $foundcoursenamestring);
-                
-            }
-            
-            
-        }
-        if (empty($fields['enrolenddisabled'])){
-            if ($fields['enrolenddate'] <= $fields['enrolstartdate']){
-                $errors['enroldateendgrp']=get_string("enrolenddaterror");
-            }
-        }
-        if (0==count($errors)){    
-            return true;
-        }else {
-            return $errors;
-        }
-    }
-}
-?>
\ No newline at end of file
index 489269dcae26c6482d153446e9a6c7ff04526002..bbc79dae5831df55fbc5bb056208c66af81e3356 100644 (file)
@@ -63,6 +63,7 @@ class moodleform {
         }
 
         $this->_form->updateSubmission($submission);
+        $this->definition_after_data();
     }
 
     function set_defaults($default_values, $slashed=false) {
@@ -119,6 +120,16 @@ class moodleform {
     function definition() {
         error('Abstract form_definition() method in class '.get_class($this).' must be overriden, please fix the code.');
     }
+    
+    /**
+     * Another abstract function. This one is called after submitted data has
+     * been processed and is available. All form setup that is dependent on form values
+     * should go in here.
+     *
+     */
+    function definition_after_data(){
+        
+    }
 
     // dummy stub method - override if needed
     function validation($data) {