Dear Gareth,
Sorry, but I've been out. I red the 3 documents you said and I can't find my mistake yet. I'm using ajax to retrieve the form to this .php:
$courseid = required_param('courseid', PARAM_INT);
$context = get_context_instance(CONTEXT_COURSE, $courseid);
//$context = context_system::instance();
$fs = get_file_storage();
$draftid = file_get_submitted_draft_itemid('attachments');//Generate unique id
$PAGE->set_context( $context );
//$itemid = 0;
$itemid = file_get_submitted_draft_itemid('attachments');
$filemanageropts = array('subdirs' => 0, 'maxbytes' => '0', 'maxfiles' => 10, 'accepted_types' => array('document','.jpg'),'context' => $context);
// Copy all the files from the 'real' area, into the draft area
file_prepare_draft_area($draftid, $context->id, 'format_socialmedia', 'attachment', $itemid, $filemanageropts);
file_save_draft_area_files($draftid, $context->id, 'format_socialmedia', 'attachment', $itemid, $filemanageropts);
//Get area files
$files = $fs->get_area_files($context->id, 'format_socialmedia', 'attachment', $itemid);
foreach($files as $file)
{
$out = $file->get_filename();
if ($file->is_directory()) {
$out = $file->get_filepath();
}
else {
$fileurl = moodle_url::make_pluginfile_url($file->get_contextid(), $file->get_component(), $file->get_filearea(),
$file->get_itemid(), $file->get_filepath(), $file->get_filename());
$out = html_writer::link($fileurl, $out);
}
echo $out;
}
So I'm trying to obtain the url to get the document. I think that I have to put the course_socialmedia_pluginfile in lib.php so:
function format_socialmedia_pluginfile($course,$cm, $context, $filearea, $args, $forcedownload, array $options=array()) {
global $CFG, $DB;
$fs = get_file_storage();
global $DB;
list($itemid, $filename) = $args;
$params = array(
'component' => 'format_socialmedia',
'filearea' => $filearea,
'itemid' => $itemid,
'filename' => $filename
);
$instanceid = $DB->get_field('files', 'id', $params);
if (empty($instanceid)) {
send_file_not_found();
} else {
$file = $fs->get_file_by_id($instanceid);
send_stored_file($file);
}
}
When I get the url I put as browser's address and gave the error file not found. Hope you can help me. Thanks in advance!!
Cheers,
Tony