diff --git a/mod/url/db/install.xml b/mod/url/db/install.xml index eb8f4d2f4c1..d042027dd7c 100644 --- a/mod/url/db/install.xml +++ b/mod/url/db/install.xml @@ -11,7 +11,7 @@ - + diff --git a/mod/url/db/upgrade.php b/mod/url/db/upgrade.php index 8c995bfae49..01926f80c9c 100644 --- a/mod/url/db/upgrade.php +++ b/mod/url/db/upgrade.php @@ -53,6 +53,20 @@ function xmldb_url_upgrade($oldversion) { // Moodle v2.1.0 release upgrade line // Put any upgrade step following this + if ($oldversion < 2011092800) { + + // Changing nullability of field externalurl on table urls to not-null + $table = new xmldb_table('url'); + $field = new xmldb_field('externalurl', XMLDB_TYPE_TEXT, 'small', null, + XMLDB_NOTNULL, null, null, 'introformat'); + + $DB->set_field_select('url', 'externalurl', $DB->sql_empty(), 'externalurl IS NULL'); + // Launch change of nullability for field =externalurl + $dbman->change_field_notnull($table, $field); + + // url savepoint reached + upgrade_mod_savepoint(true, 2011092800, 'url'); + } return true; } diff --git a/mod/url/lang/en/url.php b/mod/url/lang/en/url.php index be6867d4743..4498394bc59 100644 --- a/mod/url/lang/en/url.php +++ b/mod/url/lang/en/url.php @@ -45,6 +45,7 @@ $string['displayselectexplain'] = 'Choose display type, unfortunately not all ty $string['externalurl'] = 'External URL'; $string['framesize'] = 'Frame height'; $string['chooseavariable'] = 'Choose a variable...'; +$string['invalidurl'] = 'Entered URL is invalid'; $string['modulename'] = 'URL'; $string['modulenameplural'] = 'URLs'; $string['neverseen'] = 'Never seen'; diff --git a/mod/url/mod_form.php b/mod/url/mod_form.php index da6a7209dc7..790b85dc534 100644 --- a/mod/url/mod_form.php +++ b/mod/url/mod_form.php @@ -50,6 +50,7 @@ class mod_url_mod_form extends moodleform_mod { //------------------------------------------------------- $mform->addElement('header', 'content', get_string('contentheader', 'url')); $mform->addElement('url', 'externalurl', get_string('externalurl', 'url'), array('size'=>'60'), array('usefilepicker'=>true)); + $mform->addRule('externalurl', null, 'required', null, 'client'); //------------------------------------------------------- $mform->addElement('header', 'optionssection', get_string('optionsheader', 'url')); @@ -165,4 +166,14 @@ class mod_url_mod_form extends moodleform_mod { } } + function validation($data, $files) { + $errors = parent::validation($data, $files); + //Validating Entered url + $data['externalurl'] = clean_param($data['externalurl'], PARAM_URL); + if (empty($data['externalurl'])) { + $errors['externalurl'] = get_string('invalidurl', 'url'); + } + return $errors; + } + } diff --git a/mod/url/version.php b/mod/url/version.php index 5b4c1b54024..a769049edc9 100644 --- a/mod/url/version.php +++ b/mod/url/version.php @@ -26,7 +26,7 @@ defined('MOODLE_INTERNAL') || die; -$module->version = 2010101400; +$module->version = 2011092800; $module->requires = 2010080300; // Requires this Moodle version $module->cron = 0;