From cd6e7e0da0cb325fd4fa89445b22034fde447fff Mon Sep 17 00:00:00 2001 From: Rajesh Taneja Date: Wed, 10 Feb 2016 15:18:26 +0800 Subject: [PATCH] MDL-51306 mod_folder: Use context_module to find details renderable should not be used for extracting details. Use cm to get context and dir information --- mod/folder/download_folder.php | 3 +-- mod/folder/lib.php | 10 +++++++--- mod/folder/renderer.php | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/mod/folder/download_folder.php b/mod/folder/download_folder.php index 178e795fcc2..a1a86313b97 100644 --- a/mod/folder/download_folder.php +++ b/mod/folder/download_folder.php @@ -35,8 +35,7 @@ require_capability('mod/folder:view', $context); $folder = $DB->get_record('folder', array('id' => $cm->instance), '*', MUST_EXIST); -$foldertree = new folder_tree($folder, $cm); -$downloadable = folder_archive_available($folder, $foldertree); +$downloadable = folder_archive_available($folder, $cm); if (!$downloadable) { print_error('cannotdownloaddir', 'repository'); } diff --git a/mod/folder/lib.php b/mod/folder/lib.php index fe7dcd7cb40..dd7c30c9bf7 100644 --- a/mod/folder/lib.php +++ b/mod/folder/lib.php @@ -486,16 +486,20 @@ function folder_view($folder, $course, $cm, $context) { /** * Check if the folder can be zipped and downloaded. * @param stdClass $folder - * @param folder_tree $foldertree + * @param context_module $cm * @return bool True if the folder can be zipped and downloaded. * @throws \dml_exception */ -function folder_archive_available($folder, $foldertree) { +function folder_archive_available($folder, $cm) { if (!$folder->showdownloadfolder) { return false; } - $size = folder_get_directory_size($foldertree->dir); + $context = context_module::instance($cm->id); + $fs = get_file_storage(); + $dir = $fs->get_area_tree($context->id, 'mod_folder', 'content', 0); + + $size = folder_get_directory_size($dir); $maxsize = get_config('folder', 'maxsizetodownload') * 1024 * 1024; if ($size == 0) { diff --git a/mod/folder/renderer.php b/mod/folder/renderer.php index 1731ed55913..07044d3ed36 100644 --- a/mod/folder/renderer.php +++ b/mod/folder/renderer.php @@ -67,7 +67,7 @@ class mod_folder_renderer extends plugin_renderer_base { // Do not append the edit button on the course page. if ($folder->display != FOLDER_DISPLAY_INLINE) { $containercontents = ''; - $downloadable = folder_archive_available($folder, $foldertree); + $downloadable = folder_archive_available($folder, $cm); if ($downloadable) { $containercontents .= $this->output->single_button(