get_record('data_content', array('fieldid'=>$this->field->id, 'recordid'=>$recordid))) { if (!empty($content->content)) { if ($file = $FS->get_file($this->context->id, 'data_content', $content->id, '/', $content->content)) { if (empty($content->content1)) { $displayname = $file->get_filename(); } else { $displayname = $content->content1; } } } } } $str = '
'; $str .= '
'.$this->field->name.''; $str .= ''; $str .= get_string('file','data').'
'; $str .= get_string('optionalfilename','data').'
'; //$str .= ''; $str .= '
'; $str .= '
'; if ($file) { // Print icon if file already exists $browser = get_file_browser(); $src = file_encode_url($CFG->wwwroot.'/pluginfile.php', $this->context->id.'/data_content/'.$content->id.'/'.$file->get_filename()); $str .= ''.$file->get_mimetype().''. ''.s($file->get_filename()).''; } return $str; } function display_search_field($value = '') { return ''; } function generate_sql($tablealias, $value) { global $DB; $ILIKE = $DB->sql_ilike(); static $i=0; $i++; $name = "df_file_$i"; return array(" ({$tablealias}.fieldid = {$this->field->id} AND {$tablealias}.content $ILIKE :$name) ", array($name=>"%$value%")); } function parse_search_field() { return optional_param('f_'.$this->field->id, '', PARAM_NOTAGS); } function get_file($recordid, $content=null) { global $DB; if (empty($content)) { if (!$content = $DB->get_record('data_content', array('fieldid'=>$this->field->id, 'recordid'=>$recordid))) { return null; } } $fs = get_file_storage(); if (!$file = $fs->get_file($this->context->id, 'data_content', $content->id, '/', $content->content)) { return null; } return $file; } function display_browse_field($recordid, $template) { global $CFG, $DB; if (!$content = $DB->get_record('data_content', array('fieldid'=>$this->field->id, 'recordid'=>$recordid))) { return ''; } if (empty($content->content)) { return ''; } $browser = get_file_browser(); if (!$file = $this->get_file($recordid, $content)) { return ''; } $name = empty($content->content1) ? $file->get_filename() : $content->content1; $src = file_encode_url($CFG->wwwroot.'/pluginfile.php', '/'.$this->context->id.'/data_content/'.$content->id.'/'.$file->get_filename()); $width = $this->field->param1 ? ' width = "'.s($this->field->param1).'" ':' '; $height = $this->field->param2 ? ' height = "'.s($this->field->param2).'" ':' '; $str = ''.$file->get_mimetype().' '. ''.s($name).''; return $str; } // content: "a##b" where a is the file name, b is the display name function update_content($recordid, $value, $name) { global $CFG, $DB; if (!$content = $DB->get_record('data_content', array('fieldid'=>$this->field->id, 'recordid'=>$recordid))) { // Quickly make one now! $content = new object(); $content->fieldid = $this->field->id; $content->recordid = $recordid; $id = $DB->insert_record('data_content', $content); $content = $DB->get_record('data_content', array('id'=>$id)); } $names = explode('_', $name); switch ($names[2]) { case 'file': // file just uploaded $tmpfile = $_FILES[$names[0].'_'.$names[1]]; $filename = $tmpfile['name']; $pathanme = $tmpfile['tmp_name']; if ($filename){ $fs = get_file_storage(); // TODO: uploaded file processing will be in file picker ;-) $fs->delete_area_files($this->context->id, 'data_content', $content->id); $file_record = array('contextid'=>$this->context->id, 'filearea'=>'data_content', 'itemid'=>$content->id, 'filepath'=>'/', 'filename'=>$filename); if ($file = $fs->create_file_from_pathname($file_record, $pathanme)) { $content->content = $file->get_filename(); $DB->update_record('data_content', $content); } } break; case 'filename': // only changing alt tag $content->content1 = clean_param($value, PARAM_NOTAGS); $DB->update_record('data_content', $content); break; default: break; } } function notemptyfield($value, $name) { $names = explode('_',$name); if ($names[2] == 'file') { $filename = $_FILES[$names[0].'_'.$names[1]]; return !empty($filename['name']); // if there's a file in $_FILES, not empty } return false; } function text_export_supported() { return false; } function file_ok($path) { return true; } } ?>