mirror of
https://github.com/moodle/moodle.git
synced 2025-01-17 21:49:15 +01:00
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).
This commit is contained in:
parent
4ea53d802f
commit
ca4f8eb868
15
lang/en/docs/module_files.txt
Normal file
15
lang/en/docs/module_files.txt
Normal file
@ -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.
|
||||
|
@ -294,6 +294,7 @@ $string[phone] = "Phone";
|
||||
$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?";
|
||||
|
@ -1323,18 +1323,36 @@ function make_upload_directory($directory) {
|
||||
return $currdir;
|
||||
}
|
||||
|
||||
function make_mod_upload_directory($courseid) {
|
||||
global $CFG;
|
||||
|
||||
function get_directory_list( $rootdir ) {
|
||||
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, $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) {
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user