From 7f5bc80b78ca03f9d31be9d0ec5497c1df01e8e6 Mon Sep 17 00:00:00 2001 From: skodak Date: Sun, 17 Sep 2006 06:49:26 +0000 Subject: [PATCH] backupdata folder is no longer displayed in list of directories when setting up Directory Resource - partially related to MDL-6280 ; and some other typo fixes; get_directory_list() no accepts also array of exluded files --- lib/moodlelib.php | 10 +++++++--- mod/resource/type/directory/resource.class.php | 12 +++++------- mod/resource/type/ims/deploy.php | 2 +- mod/resource/type/ims/resource.class.php | 2 +- mod/resource/version.php | 4 ++-- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 422356d392b..042ce9e53b0 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -3781,7 +3781,7 @@ function check_potential_filename($destination,$filename,$files) { * all subdirectories, relative to the given rootdir * @todo Finish documenting this function. Add examples of $excludefile usage. */ -function get_directory_list($rootdir, $excludefile='', $descend=true, $getdirs=false, $getfiles=true) { +function get_directory_list($rootdir, $excludefiles='', $descend=true, $getdirs=false, $getfiles=true) { $dirs = array(); @@ -3797,9 +3797,13 @@ function get_directory_list($rootdir, $excludefile='', $descend=true, $getdirs=f return $dirs; } + if (!is_array($excludefiles)) { + $excludefiles = array($excludefiles); + } + while (false !== ($file = readdir($dir))) { $firstchar = substr($file, 0, 1); - if ($firstchar == '.' or $file == 'CVS' or $file == $excludefile) { + if ($firstchar == '.' or $file == 'CVS' or in_array($file, $excludefiles)) { continue; } $fullfile = $rootdir .'/'. $file; @@ -3808,7 +3812,7 @@ function get_directory_list($rootdir, $excludefile='', $descend=true, $getdirs=f $dirs[] = $file; } if ($descend) { - $subdirs = get_directory_list($fullfile, $excludefile, $descend, $getdirs, $getfiles); + $subdirs = get_directory_list($fullfile, $excludefiles, $descend, $getdirs, $getfiles); foreach ($subdirs as $subdir) { $dirs[] = $file .'/'. $subdir; } diff --git a/mod/resource/type/directory/resource.class.php b/mod/resource/type/directory/resource.class.php index 3d84d397f91..12e3c04cb81 100644 --- a/mod/resource/type/directory/resource.class.php +++ b/mod/resource/type/directory/resource.class.php @@ -39,7 +39,7 @@ function display() { error("The value for 'subdir' contains illegal characters!"); } $relativepath = "$relativepath$subdir"; - if (stripos($relativepath, 'backupdata') !== FALSE) { + if (stripos($relativepath, 'backupdata') !== FALSE or stripos($relativepath, $CFG->moddata) !== FALSE) { error("Access not allowed!"); } @@ -68,7 +68,7 @@ function display() { "", "", true, update_module_button($cm->id, $course->id, $this->strresource), navmenu($course, $cm)); - if (has_capabilities('moodle/course:managefiles', get_context_instance(CONTEXT_COURSE, $course->id))) { + if (has_capability('moodle/course:managefiles', get_context_instance(CONTEXT_COURSE, $course->id))) { echo "
pixpath/i/files.gif\" height=\"16\" width=\"16\" alt=\"\" /> ". "wwwroot/files/index.php?id={$course->id}&wdir=/{$resource->reference}$subdir\">". get_string("editfiles")."...
"; @@ -80,7 +80,7 @@ function display() { print_spacer(10,10); } - $files = get_directory_list("$CFG->dataroot/$relativepath", 'moddata', false, true, true); + $files = get_directory_list("$CFG->dataroot/$relativepath", array($CFG->moddata, 'backupdata'), false, true, true); if (!$files) { @@ -102,9 +102,7 @@ function display() { "$strmodified". ""; foreach ($files as $file) { - if ($file == 'backupdata') { - continue; - } else if (is_dir("$CFG->dataroot/$relativepath/$file")) { // Must be a directory + if (is_dir("$CFG->dataroot/$relativepath/$file")) { // Must be a directory $icon = "folder.gif"; $relativeurl = "/view.php?blah"; $filesize = display_size(get_directory_size("$CFG->dataroot/$relativepath/$file")); @@ -157,7 +155,7 @@ function setup($form) { parent::setup($form); - $rawdirs = get_directory_list("$CFG->dataroot/{$this->course->id}", 'moddata', true, true, false); + $rawdirs = get_directory_list("$CFG->dataroot/{$this->course->id}", array($CFG->moddata, 'backupdata'), true, true, false); $dirs = array(); foreach ($rawdirs as $rawdir) { $dirs[$rawdir] = $rawdir; diff --git a/mod/resource/type/ims/deploy.php b/mod/resource/type/ims/deploy.php index 5c85f0559f9..f394786509c 100644 --- a/mod/resource/type/ims/deploy.php +++ b/mod/resource/type/ims/deploy.php @@ -78,7 +78,7 @@ /// Security Constraints (sesskey and isteacheredit) if (!confirm_sesskey()) { error(get_string('confirmsesskeybad', 'error')); - } else if (!has_capabilities('moodle/course:manageactivities', get_context_instance(CONTEXT_COURSE, $courseid))) { + } else if (!has_capability('moodle/course:manageactivities', get_context_instance(CONTEXT_COURSE, $courseid))) { error(get_string('onlyeditingteachers', 'error')); } diff --git a/mod/resource/type/ims/resource.class.php b/mod/resource/type/ims/resource.class.php index 1f0caa9ce8e..6d217df18a5 100644 --- a/mod/resource/type/ims/resource.class.php +++ b/mod/resource/type/ims/resource.class.php @@ -334,7 +334,7 @@ class resource_ims extends resource_base { /// If there are any error, show it instead of the resource page if ($errorcode) { - if (!has_capabilities('moodle/course:activityvisibility', get_context_instance(CONTEXT_COURSE, $course->id))) { + if (!has_capability('moodle/course:activityvisibility', get_context_instance(CONTEXT_COURSE, $course->id))) { /// Resource not available page $errortext = get_string('resourcenotavailable','resource'); } else { diff --git a/mod/resource/version.php b/mod/resource/version.php index 46ab8b835b1..78756cb4552 100644 --- a/mod/resource/version.php +++ b/mod/resource/version.php @@ -5,8 +5,8 @@ // This fragment is called by /admin/index.php //////////////////////////////////////////////////////////////////////////////// -$module->version = 2006091201; -$module->requires = 2006080900; // Requires this Moodle version +$module->version = 2006091700; +$module->requires = 2006091700; // Requires this Moodle version $module->cron = 0; ?>