Skip to content

Commit

Permalink
Merge branch 'MDL-58399-master' of git://github.com/jleyva/moodle
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewnicols committed Apr 5, 2017
2 parents 2a44422 + 1104a9f commit 941cb7c
Show file tree
Hide file tree
Showing 11 changed files with 70 additions and 1 deletion.
5 changes: 5 additions & 0 deletions course/externallib.php
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,11 @@ public static function get_course_contents_returns() {
'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'),
Expand Down
18 changes: 18 additions & 0 deletions lib/externallib.php
Original file line number Diff line number Diff line change
Expand Up @@ -1309,6 +1309,10 @@ public static function get_area_files($contextid, $component, $filearea, $itemid
$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);
Expand Down Expand Up @@ -1345,6 +1349,8 @@ public function __construct($desc = 'List of files.', $required = VALUE_REQUIRED
'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.'
),
Expand Down Expand Up @@ -1397,6 +1403,18 @@ public static function get_properties_for_exporter() {
'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,
),
];
}
}
16 changes: 16 additions & 0 deletions lib/filestorage/stored_file.php
Original file line number Diff line number Diff line change
Expand Up @@ -815,6 +815,22 @@ public function get_repository_id() {
}
}

/**
* 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
Expand Down
4 changes: 3 additions & 1 deletion lib/tests/externallib_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,7 @@ public function test_external_util_get_area_files() {
'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);
Expand All @@ -529,7 +530,8 @@ public function test_external_files() {
$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);
Expand Down
5 changes: 5 additions & 0 deletions mod/book/lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Expand Down
5 changes: 5 additions & 0 deletions mod/folder/lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
1 change: 1 addition & 0 deletions mod/forum/tests/externallib_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,7 @@ public function test_mod_forum_get_forum_discussion_posts() {
$discussion1reply1->id, '/', $filename),
'timemodified' => $timepost,
'mimetype' => 'image/jpeg',
'isexternalfile' => false,
)
),
'totalscore' => $discussion1reply1->totalscore,
Expand Down
5 changes: 5 additions & 0 deletions mod/imscp/lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
5 changes: 5 additions & 0 deletions mod/page/lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
5 changes: 5 additions & 0 deletions mod/resource/lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
2 changes: 2 additions & 0 deletions mod/wiki/tests/externallib_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -1074,6 +1074,7 @@ public function test_get_subwiki_files_collaborative_no_groups() {
'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'],
Expand Down Expand Up @@ -1128,6 +1129,7 @@ public function test_get_subwiki_files_visible_groups_individual() {
'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'],
Expand Down

0 comments on commit 941cb7c

Please sign in to comment.