mirror of
https://github.com/moodle/moodle.git
synced 2025-04-14 04:52:36 +02:00
Merge branch 'MDL-58399-master' of git://github.com/jleyva/moodle
This commit is contained in:
commit
941cb7ce3c
@ -363,6 +363,11 @@ class core_course_external extends external_api {
|
||||
'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'),
|
||||
|
@ -1309,6 +1309,10 @@ class external_util {
|
||||
$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);
|
||||
@ -1345,6 +1349,8 @@ class external_files extends external_multiple_structure {
|
||||
'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.'
|
||||
),
|
||||
@ -1397,6 +1403,18 @@ class external_files extends external_multiple_structure {
|
||||
'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,
|
||||
),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -815,6 +815,22 @@ class stored_file {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
|
@ -510,6 +510,7 @@ class core_externallib_testcase extends advanced_testcase {
|
||||
'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);
|
||||
@ -529,7 +530,8 @@ class core_externallib_testcase extends advanced_testcase {
|
||||
$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);
|
||||
|
@ -595,6 +595,11 @@ function book_export_contents($cm, $baseurl) {
|
||||
$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;
|
||||
}
|
||||
}
|
||||
|
@ -326,6 +326,11 @@ function folder_export_contents($cm, $baseurl) {
|
||||
$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;
|
||||
}
|
||||
|
||||
|
@ -325,6 +325,7 @@ class mod_forum_external_testcase extends externallib_advanced_testcase {
|
||||
$discussion1reply1->id, '/', $filename),
|
||||
'timemodified' => $timepost,
|
||||
'mimetype' => 'image/jpeg',
|
||||
'isexternalfile' => false,
|
||||
)
|
||||
),
|
||||
'totalscore' => $discussion1reply1->totalscore,
|
||||
|
@ -420,6 +420,11 @@ function imscp_export_contents($cm, $baseurl) {
|
||||
$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;
|
||||
}
|
||||
|
||||
|
@ -424,6 +424,11 @@ function page_export_contents($cm, $baseurl) {
|
||||
$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;
|
||||
}
|
||||
|
||||
|
@ -460,6 +460,11 @@ function resource_export_contents($cm, $baseurl) {
|
||||
$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;
|
||||
}
|
||||
|
||||
|
@ -1074,6 +1074,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
|
||||
'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'],
|
||||
@ -1128,6 +1129,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
|
||||
'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'],
|
||||
|
Loading…
x
Reference in New Issue
Block a user