Permalink
Browse files

Moved uploaded assignment files into a subdirectory called moddata,

where data from other modules can also live later on.

Also added a README for that directory to warn teachers not to mess
with it, version code to perform the upgrade, tweaks to assignment/lib.php
and a tweak to reading module so that assignment files aren't listed
in the list of possible readings (could get messy).
  • Loading branch information...
1 parent 4ea53d8 commit ca4f8eb868b36e218b00ad160ba9ecd1f04c0fb3 martin committed Aug 28, 2002
Showing with 71 additions and 6 deletions.
  1. +15 −0 lang/en/docs/module_files.txt
  2. +1 −0 lang/en/moodle.php
  3. +22 −4 lib/moodlelib.php
  4. +1 −0 lib/setup.php
  5. +3 −1 mod/assignment/lib.php
  6. +29 −1 mod/assignment/version.php
@@ -0,0 +1,15 @@
+ABOUT THIS DIRECTORY
+--------------------
+
+DO NOT CHANGE, RENAME OR MOVE ANY OF THE FILES IN THIS DIRECTORY
+unless you really know what you are doing.
+
+Changing these files could mess up your course.
+
+This directory contains files uploaded to your course within
+particular modules (mostly by students), such as assignment
+submissions and forum attachments.
+
+The names of the directories and files within this directory
+are very specific and automatically maintained by Moodle.
+
View
@@ -294,6 +294,7 @@
$string[preview] = "Preview";
$string[previeworchoose] = "Preview or choose a theme";
$string[question] = "Question";
+$string[readme] = "README"; // This is a file name
$string[recentactivity] = "Recent activity";
$string[resources] = "Resources";
$string[returningtosite] = "Returning to this web site?";
View
@@ -1323,18 +1323,36 @@ function make_upload_directory($directory) {
return $currdir;
}
+function make_mod_upload_directory($courseid) {
+ global $CFG;
+
+ if (! $moddata = make_upload_directory("$courseid/$CFG->moddata")) {
+ return false;
+ }
+
+ $strreadme = get_string("readme");
+
+ if (file_exists("$CFG->dirroot/lang/$CFG->lang/docs/module_files.txt")) {
+ copy("$CFG->dirroot/lang/$CFG->lang/docs/module_files.txt", "$moddata/$strreadme.txt");
+ } else {
+ copy("$CFG->dirroot/lang/en/docs/module_files.txt", "$moddata/$strreadme.txt");
+ }
+ return $moddata;
+}
+
-function get_directory_list( $rootdir ) {
+function get_directory_list($rootdir, $excludefile="") {
// Returns an array with all the filenames in
// all subdirectories, relative to the given rootdir.
+// If excludefile is defined, then that file/directory is ignored
$dirs = array();
$dir = opendir( $rootdir );
- while( $file = readdir( $dir ) ) {
- $fullfile = $rootdir."/".$file;
- if ($file != "." and $file != "..") {
+ while ($file = readdir($dir)) {
+ if ($file != "." and $file != ".." and $file != $excludefile) {
+ $fullfile = $rootdir."/".$file;
if (filetype($fullfile) == "dir") {
$subdirs = get_directory_list($fullfile);
foreach ($subdirs as $subdir) {
View
@@ -50,6 +50,7 @@
$CFG->stylesheet = "$CFG->wwwroot/theme/$CFG->theme/styles.css";
$CFG->header = "$CFG->dirroot/theme/$CFG->theme/header.html";
$CFG->footer = "$CFG->dirroot/theme/$CFG->theme/footer.html";
+ $CFG->moddata = "moddata";
// Load up theme variables (colours etc)
View
@@ -189,7 +189,9 @@ function assignment_cron () {
function assignment_file_area_name($assignment, $user) {
// Creates a directory file name, suitable for make_upload_directory()
- return "$assignment->course/assignment/$assignment->id/$user->id";
+ global $CFG;
+
+ return "$assignment->course/$CFG->moddata/assignment/$assignment->id/$user->id";
}
function assignment_file_area($assignment, $user) {
View
@@ -5,13 +5,15 @@
// This fragment is called by /admin/index.php
////////////////////////////////////////////////////////////////////////////////
-$module->version = 2002082000;
+$module->version = 2002082805;
$module->cron = 60;
function assignment_upgrade($oldversion) {
// This function does anything necessary to upgrade
// older versions to match current functionality
+ global $CFG;
+
if ($oldversion < 2002080500) {
execute_sql("
@@ -57,6 +59,32 @@ function assignment_upgrade($oldversion) {
execute_sql(" ALTER TABLE `assignment_submissions` CHANGE `id` `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ");
}
+ if ($oldversion < 2002082805) {
+ // assignment file area was moved, so rename all the directories in existing courses
+
+ $basedir = opendir("$CFG->dataroot");
+ while ($dir = readdir($basedir)) {
+ if ($dir == "." || $dir == ".." || $dir == "users") {
+ continue;
+ }
+ if (filetype("$CFG->dataroot/$dir") != "dir") {
+ continue;
+ }
+ $coursedir = "$CFG->dataroot/$dir";
+
+ if (! $coursemoddata = make_mod_upload_directory($dir)) {
+ echo "Error: could not create mod upload directory: $coursemoddata";
+ continue;
+ }
+
+ if (file_exists("$coursedir/assignment")) {
+ if (! rename("$coursedir/assignment", "$coursemoddata/assignment")) {
+ echo "Error: could not move $coursedir/assignment to $coursemoddata/assignment\n";
+ }
+ }
+ }
+ }
+
return true;
}

0 comments on commit ca4f8eb

Please sign in to comment.