'timecreated' => new external_value(PARAM_INT, 'Time created'),
'timemodified' => new external_value(PARAM_INT, 'Time modified'),
'sortorder' => new external_value(PARAM_INT, 'Content sort order'),
+ 'mimetype' => new external_value(PARAM_RAW, 'File mime type.', VALUE_OPTIONAL),
+ 'isexternalfile' => new external_value(PARAM_BOOL, 'Whether is an external file.',
+ VALUE_OPTIONAL),
+ 'repositorytype' => new external_value(PARAM_PLUGIN, 'The repository type for external files.',
+ VALUE_OPTIONAL),
// copyright related info
'userid' => new external_value(PARAM_INT, 'User who added this content to moodle'),
$file['mimetype'] = $areafile->get_mimetype();
$file['filesize'] = $areafile->get_filesize();
$file['timemodified'] = $areafile->get_timemodified();
+ $file['isexternalfile'] = $areafile->is_external_file();
+ if ($file['isexternalfile']) {
+ $file['repositorytype'] = $areafile->get_repository_type();
+ }
$fileitemid = $useitemidinurl ? $areafile->get_itemid() : null;
$file['fileurl'] = moodle_url::make_webservice_pluginfile_url($contextid, $component, $filearea,
$fileitemid, $areafile->get_filepath(), $areafile->get_filename())->out(false);
'fileurl' => new external_value(PARAM_URL, 'Downloadable file url.', VALUE_OPTIONAL),
'timemodified' => new external_value(PARAM_INT, 'Time modified.', VALUE_OPTIONAL),
'mimetype' => new external_value(PARAM_RAW, 'File mime type.', VALUE_OPTIONAL),
+ 'isexternalfile' => new external_value(PARAM_BOOL, 'Whether is an external file.', VALUE_OPTIONAL),
+ 'repositorytype' => new external_value(PARAM_PLUGIN, 'The repository type for external files.', VALUE_OPTIONAL),
),
'File.'
),
'optional' => true,
'null' => NULL_NOT_ALLOWED,
),
+ 'isexternalfile' => array(
+ 'type' => PARAM_BOOL,
+ 'description' => 'Whether is an external file.',
+ 'optional' => true,
+ 'null' => NULL_NOT_ALLOWED,
+ ),
+ 'repositorytype' => array(
+ 'type' => PARAM_PLUGIN,
+ 'description' => 'The repository type for the external files.',
+ 'optional' => true,
+ 'null' => NULL_ALLOWED,
+ ),
];
}
}
}
}
+ /**
+ * Returns repository type.
+ *
+ * @return mixed str|null the repository type or null if is not an external file
+ * @since Moodle 3.3
+ */
+ public function get_repository_type() {
+
+ if (!empty($this->repository)) {
+ return $this->repository->get_typename();
+ } else {
+ return null;
+ }
+ }
+
+
/**
* get reference file id
* @return int
'timemodified' => $timemodified,
'filesize' => $filesize,
'mimetype' => 'text/plain',
+ 'isexternalfile' => false,
);
// Get all the files for the area.
$files = external_util::get_area_files($context, $component, $filearea, false);
$description = new external_files();
// First check that the expected default values and keys are returned.
- $expectedkeys = array_flip(array('filename', 'filepath', 'filesize', 'fileurl', 'timemodified', 'mimetype'));
+ $expectedkeys = array_flip(array('filename', 'filepath', 'filesize', 'fileurl', 'timemodified', 'mimetype',
+ 'isexternalfile', 'repositorytype'));
$returnedkeys = array_flip(array_keys($description->content->keys));
$this->assertEquals($expectedkeys, $returnedkeys);
$this->assertEquals('List of files.', $description->desc);
$file['userid'] = $fileinfo->get_userid();
$file['author'] = $fileinfo->get_author();
$file['license'] = $fileinfo->get_license();
+ $file['mimetype'] = $fileinfo->get_mimetype();
+ $file['isexternalfile'] = $fileinfo->is_external_file();
+ if ($file['isexternalfile']) {
+ $file['repositorytype'] = $fileinfo->get_repository_type();
+ }
$contents[] = $file;
}
}
$file['userid'] = $fileinfo->get_userid();
$file['author'] = $fileinfo->get_author();
$file['license'] = $fileinfo->get_license();
+ $file['mimetype'] = $fileinfo->get_mimetype();
+ $file['isexternalfile'] = $fileinfo->is_external_file();
+ if ($file['isexternalfile']) {
+ $file['repositorytype'] = $fileinfo->get_repository_type();
+ }
$contents[] = $file;
}
$discussion1reply1->id, '/', $filename),
'timemodified' => $timepost,
'mimetype' => 'image/jpeg',
+ 'isexternalfile' => false,
)
),
'totalscore' => $discussion1reply1->totalscore,
$file['userid'] = $fileinfo->get_userid();
$file['author'] = $fileinfo->get_author();
$file['license'] = $fileinfo->get_license();
+ $file['mimetype'] = $fileinfo->get_mimetype();
+ $file['isexternalfile'] = $fileinfo->is_external_file();
+ if ($file['isexternalfile']) {
+ $file['repositorytype'] = $fileinfo->get_repository_type();
+ }
$contents[] = $file;
}
$file['userid'] = $fileinfo->get_userid();
$file['author'] = $fileinfo->get_author();
$file['license'] = $fileinfo->get_license();
+ $file['mimetype'] = $fileinfo->get_mimetype();
+ $file['isexternalfile'] = $fileinfo->is_external_file();
+ if ($file['isexternalfile']) {
+ $file['repositorytype'] = $fileinfo->get_repository_type();
+ }
$contents[] = $file;
}
$file['userid'] = $fileinfo->get_userid();
$file['author'] = $fileinfo->get_author();
$file['license'] = $fileinfo->get_license();
+ $file['mimetype'] = $fileinfo->get_mimetype();
+ $file['isexternalfile'] = $fileinfo->is_external_file();
+ if ($file['isexternalfile']) {
+ $file['repositorytype'] = $fileinfo->get_repository_type();
+ }
$contents[] = $file;
}
'filename' => $file['filename'],
'filepath' => $file['filepath'],
'mimetype' => 'image/jpeg',
+ 'isexternalfile' => false,
'filesize' => strlen($content),
'timemodified' => $file['timemodified'],
'fileurl' => moodle_url::make_webservice_pluginfile_url($file['contextid'], $file['component'],
'filename' => $file['filename'],
'filepath' => $file['filepath'],
'mimetype' => 'image/jpeg',
+ 'isexternalfile' => false,
'filesize' => strlen($content),
'timemodified' => $file['timemodified'],
'fileurl' => moodle_url::make_webservice_pluginfile_url($file['contextid'], $file['component'],