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;