From cd4a1897d9fd42941cb473ed97d0494e59d032ff Mon Sep 17 00:00:00 2001 From: Dongsheng Cai Date: Wed, 1 Sep 2010 03:37:30 +0000 Subject: [PATCH] MDL-24030, fixed url field type --- mod/data/data.js | 4 +--- mod/data/field/url/field.class.php | 32 ++++++++++++++++-------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/mod/data/data.js b/mod/data/data.js index b7c3db3c69f..59466272715 100644 --- a/mod/data/data.js +++ b/mod/data/data.js @@ -71,7 +71,6 @@ M.data_filepicker.init = function(Y, options) { M.data_urlpicker = {}; M.data_urlpicker.init = function(Y, options) { - this.formelementid = options.formelementid; options.formcallback = M.data_urlpicker.callback; if (!M.core_filepicker.instances[options.client_id]) { M.core_filepicker.init(Y, options); @@ -84,12 +83,11 @@ M.data_urlpicker.init = function(Y, options) { }; M.data_urlpicker.callback = function (params) { - document.getElementById(M.data_urlpicker.formelementid).value = params.url; + document.getElementById('field_url_'+params.client_id).value = params.url; } M.data_imagepicker = {}; - M.data_imagepicker.callback = function(params) { var html = ' '+params['file']+''; document.getElementById('file_info_'+params['client_id']).innerHTML = html; diff --git a/mod/data/field/url/field.class.php b/mod/data/field/url/field.class.php index e5d65d121d9..b86d8764d22 100755 --- a/mod/data/field/url/field.class.php +++ b/mod/data/field/url/field.class.php @@ -28,6 +28,16 @@ class data_field_url extends data_field_base { function display_add_field($recordid=0) { global $CFG, $DB, $OUTPUT, $PAGE; + $args = new stdclass; + $args->accepted_types = '*'; + $args->return_types = FILE_EXTERNAL; + $args->context = $this->context; + $args->env = 'url'; + $fp = new file_picker($args); + $options = $fp->options; + + $fieldid = 'field_url_'.$options->client_id; + $straddlink = get_string('choosealink', 'repository'); $url = ''; $text = ''; @@ -36,30 +46,22 @@ class data_field_url extends data_field_base { $url = $content->content; $text = $content->content1; } - } + } $str = '
'; if (!empty($this->field->param1) and empty($this->field->param2)) { $str .= ''; + $str .= get_string('url','data').':'; $str .= ''; $str .= '
'; - $str .= get_string('url','data').':
'.get_string('text','data').':
'; } else { // Just the URL field - $str .= ''; + $str .= ''; } - $args = new stdclass; - $args->accepted_types = '*'; - $args->return_types = FILE_EXTERNAL; - $args->context = $this->context; - $args->env = 'url'; - $fp = new file_picker($args); - $options = $fp->options; - $options->formelementid = 'field_'.$this->field->id.'_0'; $str .= ''; // print out file picker - $str .= $OUTPUT->render($fp); + //$str .= $OUTPUT->render($fp); $module = array('name'=>'data_urlpicker', 'fullpath'=>'/mod/data/data.js', 'requires'=>array('core_filepicker')); $PAGE->requires->js_init_call('M.data_urlpicker.init', array($options), true, $module); @@ -123,7 +125,7 @@ class data_field_url extends data_field_base { $content->fieldid = $this->field->id; $content->recordid = $recordid; $names = explode('_', $name); - + switch ($names[2]) { case 0: // update link @@ -139,8 +141,8 @@ class data_field_url extends data_field_base { if (!empty($content->content) && (strpos($content->content, '://') === false) && (strpos($content->content, '/', 0) === false)) { $content->content = 'http://' . $content->content; - } - + } + if ($oldcontent = $DB->get_record('data_content', array('fieldid'=>$this->field->id, 'recordid'=>$recordid))) { $content->id = $oldcontent->id; return $DB->update_record('data_content', $content);