MDL-65412 core_customfield: check configdata link exists
authorDavid Matamoros <davidmc@moodle.com>
Wed, 24 Apr 2019 15:30:02 +0000 (17:30 +0200)
committerDavid Matamoros <davidmc@moodle.com>
Wed, 24 Apr 2019 15:30:02 +0000 (17:30 +0200)
customfield/field/text/classes/field_controller.php

index ffe6ec7..06b040a 100644 (file)
@@ -105,14 +105,16 @@ class field_controller extends \core_customfield\field_controller {
             $errors['configdata[displaysize]'] = get_string('errorconfigdisplaysize', 'customfield_text');
         }
 
-        $link = $data['configdata']['link'];
-        if (strlen($link)) {
-            require_once($CFG->dirroot . '/lib/validateurlsyntax.php');
-            if (strpos($link, '$$') === false) {
-                $errors['configdata[link]'] = get_string('errorconfiglinkplaceholder', 'customfield_text');
-            } else if (!validateUrlSyntax(str_replace('$$', 'XYZ', $link), 's+H?S?F-E-u-P-a?I?p?f?q?r?')) {
-                // This validation is more strict than PARAM_URL - it requires the protocol and it must be either http or https.
-                $errors['configdata[link]'] = get_string('errorconfigdisplaysize', 'customfield_text');
+        if (isset($data['configdata']['link'])) {
+            $link = $data['configdata']['link'];
+            if (strlen($link)) {
+                require_once($CFG->dirroot . '/lib/validateurlsyntax.php');
+                if (strpos($link, '$$') === false) {
+                    $errors['configdata[link]'] = get_string('errorconfiglinkplaceholder', 'customfield_text');
+                } else if (!validateUrlSyntax(str_replace('$$', 'XYZ', $link), 's+H?S?F-E-u-P-a?I?p?f?q?r?')) {
+                    // This validation is more strict than PARAM_URL - it requires the protocol and it must be either http or https.
+                    $errors['configdata[link]'] = get_string('errorconfigdisplaysize', 'customfield_text');
+                }
             }
         }