From c08ac0162711545b8143983e69fabeaf38736094 Mon Sep 17 00:00:00 2001 From: jamiesensei Date: Mon, 16 Oct 2006 12:07:44 +0000 Subject: [PATCH] added new dummy function to moodleform to allow some defintion to be done for the form dependent on data values. --- course/edit3.php | 194 -------------------- course/edit_form.php | 16 +- course/edit_form3.php | 403 ------------------------------------------ lib/formslib.php | 11 ++ 4 files changed, 24 insertions(+), 600 deletions(-) delete mode 100644 course/edit3.php delete mode 100644 course/edit_form3.php diff --git a/course/edit3.php b/course/edit3.php deleted file mode 100644 index 4c5ef3d7f0..0000000000 --- a/course/edit3.php +++ /dev/null @@ -1,194 +0,0 @@ -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", - "wwwroot/course/view.php?id=$course->id\">$course->shortname - -> $streditcoursesettings", $focus); - } else { - print_header("$site->shortname: $straddnewcourse", "$site->fullname", - "admin/index.php\">$stradministration -> ". - "$strcategories -> $straddnewcourse"); - } - - - print_heading($streditcoursesettings); - - $editform->display(); - - print_footer($course); - -?> \ No newline at end of file diff --git a/course/edit_form.php b/course/edit_form.php index da3884348a..71e29854b5 100644 --- a/course/edit_form.php +++ b/course/edit_form.php @@ -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 index 87b5833204..0000000000 --- a/course/edit_form3.php +++ /dev/null @@ -1,403 +0,0 @@ -_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"), ' ', 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 diff --git a/lib/formslib.php b/lib/formslib.php index 489269dcae..bbc79dae58 100644 --- a/lib/formslib.php +++ b/lib/formslib.php @@ -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) { -- 2.39.5