diff --git a/backup/backuplib.php b/backup/backuplib.php
deleted file mode 100644
index b79646fa8e3..00000000000
--- a/backup/backuplib.php
+++ /dev/null
@@ -1,426 +0,0 @@
-count_records ('message');
- $reads = $DB->count_records ('message_read');
- $contacts= $DB->count_records ('message_contacts');
-
- if ($unreads || $reads || $contacts) {
- $counter = 0;
- /// message open tag
- fwrite ($bf,start_tag("MESSAGES",2,true));
-
- if ($unreads) {
- $rs_unreads = $DB->get_recordset('message');
- /// Iterate over every unread
- foreach ($rs_unreads as $unread) {
- /// start message
- fwrite($bf, start_tag("MESSAGE",3,true));
- fwrite ($bf,full_tag("ID",4,false,$unread->id));
- fwrite ($bf,full_tag("STATUS",4,false,"UNREAD"));
- fwrite ($bf,full_tag("USERIDFROM",4,false,$unread->useridfrom));
- fwrite ($bf,full_tag("USERIDTO",4,false,$unread->useridto));
- fwrite ($bf,full_tag("MESSAGE",4,false,$unread->message));
- fwrite ($bf,full_tag("FORMAT",4,false,$unread->format));
- fwrite ($bf,full_tag("TIMECREATED",4,false,$unread->timecreated));
- fwrite ($bf,full_tag("MESSAGETYPE",4,false,$unread->messagetype));
- /// end message
- fwrite ($bf,end_tag("MESSAGE",3,true));
-
- /// Do some output
- $counter++;
- if ($counter % 20 == 0) {
- echo ".";
- if ($counter % 400 == 0) {
- echo "
";
- }
- backup_flush(300);
- }
- }
- $rs_unreads->close();
- }
-
- if ($reads) {
- $rs_reads = $DB->get_recordset('message_read');
- /// Iterate over every unread
- foreach ($rs_reads as $read) {
- /// start message
- fwrite($bf, start_tag("MESSAGE",3,true));
- fwrite ($bf,full_tag("ID",4,false,$read->id));
- fwrite ($bf,full_tag("STATUS",4,false,"READ"));
- fwrite ($bf,full_tag("USERIDFROM",4,false,$read->useridfrom));
- fwrite ($bf,full_tag("USERIDTO",4,false,$read->useridto));
- fwrite ($bf,full_tag("MESSAGE",4,false,$read->message));
- fwrite ($bf,full_tag("FORMAT",4,false,$read->format));
- fwrite ($bf,full_tag("TIMECREATED",4,false,$read->timecreated));
- fwrite ($bf,full_tag("MESSAGETYPE",4,false,$read->messagetype));
- fwrite ($bf,full_tag("TIMEREAD",4,false,$read->timeread));
- fwrite ($bf,full_tag("MAILED",4,false,$read->mailed));
- /// end message
- fwrite ($bf,end_tag("MESSAGE",3,true));
-
- /// Do some output
- $counter++;
- if ($counter % 20 == 0) {
- echo ".";
- if ($counter % 400 == 0) {
- echo "
";
- }
- backup_flush(300);
- }
- }
- $rs_reads->close();
- }
-
- if ($contacts) {
- fwrite($bf, start_tag("CONTACTS",3,true));
- $rs_contacts = $DB->get_recordset('message_contacts');
- /// Iterate over every contact
- foreach ($rs_contacts as $contact) {
- /// start contact
- fwrite($bf, start_tag("CONTACT",4,true));
- fwrite ($bf,full_tag("ID",5,false,$contact->id));
- fwrite ($bf,full_tag("USERID",5,false,$contact->userid));
- fwrite ($bf,full_tag("CONTACTID",5,false,$contact->contactid));
- fwrite ($bf,full_tag("BLOCKED",5,false,$contact->blocked));
- /// end contact
- fwrite ($bf,end_tag("CONTACT",4,true));
-
- /// Do some output
- $counter++;
- if ($counter % 20 == 0) {
- echo ".";
- if ($counter % 400 == 0) {
- echo "
";
- }
- backup_flush(300);
- }
- }
- $rs_contacts->close();
- fwrite($bf, end_tag("CONTACTS",3,true));
- }
-
- /// messages close tag
- $status = fwrite ($bf,end_tag("MESSAGES",2,true));
- }
-
- return $status;
-
- }
-
- //Print blogs info (post table, module=blog, course=0)
- function backup_blogs($bf, $preferences) {
- global $CFG, $DB;
-
- $status = true;
-
- /// Check we have something to backup
- $siteblogs = $DB->count_records('post', array('module'=>'blog', 'courseid'=>0));
-
- if ($siteblogs) {
- $counter = 0;
- /// blogs open tag
- fwrite ($bf, start_tag("BLOGS",2,true));
-
- if ($siteblogs) {
- $rs_blogs = $DB->get_records('post', array('module'=>'blog', 'courseid'=>0));
- /// Iterate over every blog
- foreach ($rs_blogs as $blog) {
- backup_blog($bf, $blog->id, 3);
-
- /// Do some output
- $counter++;
- if ($counter % 20 == 0) {
- echo ".";
- if ($counter % 400 == 0) {
- echo "
";
- }
- backup_flush(300);
- }
- }
- $rs_blogs-close();
- }
- /// blogs close tag
- $status = fwrite($bf, end_tag("BLOGS",2,true));
- }
-
- return $status;
- }
-
-
- function backup_blog($bf, $blogid, $level) {
- global $DB;
- $blog = $DB->get_record('post', array('module'=>'blog', 'id'=>$blogid));
-
- /// start blog
- fwrite($bf, start_tag("BLOG",$level,true));
- /// blog body
- fwrite ($bf,full_tag("ID",$level+1,false,$blog->id));
- fwrite ($bf,full_tag("MODULE",$level+1,false,$blog->module));
- fwrite ($bf,full_tag("USERID",$level+1,false,$blog->userid));
- fwrite ($bf,full_tag("COURSEID",$level+1,false,$blog->courseid));
- fwrite ($bf,full_tag("GROUPID",$level+1,false,$blog->groupid));
- fwrite ($bf,full_tag("MODULEID",$level+1,false,$blog->moduleid));
- fwrite ($bf,full_tag("COURSEMODULEID",$level+1,false,$blog->coursemoduleid));
- fwrite ($bf,full_tag("SUBJECT",$level+1,false,$blog->subject));
- fwrite ($bf,full_tag("SUMMARY",$level+1,false,$blog->summary));
- fwrite ($bf,full_tag("CONTENT",$level+1,false,$blog->content));
- fwrite ($bf,full_tag("UNIQUEHASH",$level+1,false,$blog->uniquehash));
- fwrite ($bf,full_tag("RATING",$level+1,false,$blog->rating));
- fwrite ($bf,full_tag("FORMAT",$level+1,false,$blog->format));
- fwrite ($bf,full_tag("ATTACHMENT",$level+1,false,$blog->attachment));
- fwrite ($bf,full_tag("PUBLISHSTATE",$level+1,false,$blog->publishstate));
- fwrite ($bf,full_tag("LASTMODIFIED",$level+1,false,$blog->lastmodified));
- fwrite ($bf,full_tag("CREATED",$level+1,false,$blog->created));
- fwrite ($bf,full_tag("USERMODIFIED",$level+1,false,$blog->usermodified));
-
- /// Blog tags
- /// Check if we have blog tags to backup
- if (!empty($CFG->usetags)) {
- if ($tags = tag_get_tags('post', $blog->id)) { //This return them ordered by default
- /// Start BLOG_TAGS tag
- fwrite ($bf,start_tag("BLOG_TAGS",$level+1,true));
- /// Write blog tags fields
- foreach ($tags as $tag) {
- fwrite ($bf,start_tag("BLOG_TAG",$level+2,true));
- fwrite ($bf,full_tag("NAME",$level+3,false,$tag->name));
- fwrite ($bf,full_tag("RAWNAME",$level+3,false,$tag->rawname));
- fwrite ($bf,end_tag("BLOG_TAG",$level+2,true));
- }
- /// End BLOG_TAGS tag
- fwrite ($bf,end_tag("BLOG_TAGS",$level+1,true));
- }
- }
- /// end blog
- fwrite($bf, end_tag("BLOG",$level,true));
- }
-
- //Prints course's format data (any data the format might want to save).
- function backup_format_data ($bf,$preferences) {
- global $CFG, $DB;
-
- // Check course format
- if(!($format = $DB->get_field('course','format', array('id'=>$preferences->backup_course)))) {
- return false;
- }
- // Write appropriate tag. Note that we always put this tag there even if
- // blank, it makes parsing easier
- fwrite ($bf,start_tag("FORMATDATA",2,true));
-
- $file=$CFG->dirroot."/course/format/$format/backuplib.php";
- if(file_exists($file)) {
- // If the file is there, the function must be or it's an error.
- require_once($file);
- $function=$format.'_backup_format_data';
- if(!function_exists($function)) {
- return false;
- }
- if(!$function($bf,$preferences)) {
- return false;
- }
- }
-
- // This last return just checks the file writing has been ok (ish)
- return fwrite ($bf,end_tag("FORMATDATA",2,true));
- }
-
- function backup_gradebook_categories_history_info($bf, $preferences) {
- global $CFG, $DB;
-
- $status = true;
-
- // find all grade categories history
- if ($chs = $DB->get_records('grade_categories_history', array('courseid'=>$preferences->backup_course))) {
- fwrite ($bf,start_tag("GRADE_CATEGORIES_HISTORIES",3,true));
- foreach ($chs as $ch) {
- fwrite ($bf,start_tag("GRADE_CATEGORIES_HISTORY",4,true));
- fwrite ($bf,full_tag("ID",5,false,$ch->id));
- fwrite ($bf,full_tag("ACTION",5,false,$ch->action));
- fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid));
- fwrite ($bf,full_tag("SOURCE",5,false,$ch->source));
- fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified));
- fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser));
- fwrite ($bf,full_tag("PARENT",5,false,$ch->parent));
- fwrite ($bf,full_tag("DEPTH",5,false,$ch->depth));
- fwrite ($bf,full_tag("PATH",5,false,$ch->path));
- fwrite ($bf,full_tag("FULLNAME",5,false,$ch->fullname));
- fwrite ($bf,full_tag("AGGRETGATION",5,false,$ch->aggregation));
- fwrite ($bf,full_tag("KEEPHIGH",5,false,$ch->keephigh));
- fwrite ($bf,full_tag("DROPLOW",5,false,$ch->droplow));
- fwrite ($bf,full_tag("AGGREGATEONLYGRADED",5,false,$ch->aggregateonlygraded));
- fwrite ($bf,full_tag("AGGREGATEOUTCOMES",5,false,$ch->aggregateoutcomes));
- fwrite ($bf,full_tag("AGGREGATESUBCATS",5,false,$ch->aggregatesubcats));
- fwrite ($bf,end_tag("GRADE_CATEGORIES_HISTORY",4,true));
- }
- $status = fwrite ($bf,end_tag("GRADE_CATEGORIES_HISTORIES",3,true));
- }
- return $status;
- }
-
- function backup_gradebook_grades_history_info($bf, $preferences) {
- global $CFG, $DB;
- $status = true;
-
- // find all grade categories history
- if ($chs = $DB->get_records_sql("SELECT ggh.*
- FROM {grade_grades_history} ggh
- JOIN {grade_item} gi ON gi.id = ggh.itemid
- WHERE gi.courseid = ?", array($preferences->backup_course))) {
- fwrite ($bf,start_tag("GRADE_GRADES_HISTORIES",3,true));
- foreach ($chs as $ch) {
- /// Grades are only sent to backup if the user is one target user
- if (backup_getid($preferences->backup_unique_code, 'user', $ch->userid)) {
- fwrite ($bf,start_tag("GRADE_GRADES_HISTORY",4,true));
- fwrite ($bf,full_tag("ID",5,false,$ch->id));
- fwrite ($bf,full_tag("ACTION",5,false,$ch->action));
- fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid));
- fwrite ($bf,full_tag("SOURCE",5,false,$ch->source));
- fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified));
- fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser));
- fwrite ($bf,full_tag("ITEMID",5,false,$ch->itemid));
- fwrite ($bf,full_tag("USERID",5,false,$ch->userid));
- fwrite ($bf,full_tag("RAWGRADE",5,false,$ch->rawgrade));
- fwrite ($bf,full_tag("RAWGRADEMAX",5,false,$ch->rawgrademax));
- fwrite ($bf,full_tag("RAWGRADEMIN",5,false,$ch->rawgrademin));
- fwrite ($bf,full_tag("RAWSCALEID",5,false,$ch->rawscaleid));
- fwrite ($bf,full_tag("USERMODIFIED",5,false,$ch->usermodified));
- fwrite ($bf,full_tag("FINALGRADE",5,false,$ch->finalgrade));
- fwrite ($bf,full_tag("HIDDEN",5,false,$ch->hidden));
- fwrite ($bf,full_tag("LOCKED",5,false,$ch->locked));
- fwrite ($bf,full_tag("LOCKTIME",5,false,$ch->locktime));
- fwrite ($bf,full_tag("EXPORTED",5,false,$ch->exported));
- fwrite ($bf,full_tag("OVERRIDDEN",5,false,$ch->overridden));
- fwrite ($bf,full_tag("EXCLUDED",5,false,$ch->excluded));
- fwrite ($bf,full_tag("FEEDBACK",5,false,$ch->feedback));
- fwrite ($bf,full_tag("FEEDBACKFORMAT",5,false,$ch->feedbackformat));
- fwrite ($bf,full_tag("INFORMATION",5,false,$ch->information));
- fwrite ($bf,full_tag("INFORMATIONFORMAT",5,false,$ch->informationformat));
- fwrite ($bf,end_tag("GRADE_GRADES_HISTORY",4,true));
- }
- }
- $status = fwrite ($bf,end_tag("GRADE_GRADES_HISTORIES",3,true));
- }
- return $status;
- }
-
- function backup_gradebook_items_history_info($bf, $preferences) {
- global $CFG, $DB;
- $status = true;
-
- // find all grade categories history
- if ($chs = $DB->get_records('grade_items_history', array('courseid'=>$preferences->backup_course))) {
- fwrite ($bf,start_tag("GRADE_ITEM_HISTORIES",3,true));
- foreach ($chs as $ch) {
- fwrite ($bf,start_tag("GRADE_ITEM_HISTORY",4,true));
- fwrite ($bf,full_tag("ID",5,false,$ch->id));
- fwrite ($bf,full_tag("ACTION",5,false,$ch->action));
- fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid));
- fwrite ($bf,full_tag("SOURCE",5,false,$ch->source));
- fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified));
- fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser));
- fwrite ($bf,full_tag("CATEGORYID",5,false,$ch->categoryid));
- fwrite ($bf,full_tag("ITEMNAME",5,false,$ch->itemname));
- fwrite ($bf,full_tag("ITEMTYPE",5,false,$ch->itemtype));
- fwrite ($bf,full_tag("ITEMMODULE",5,false,$ch->itemmodule));
- fwrite ($bf,full_tag("ITEMINSTANCE",5,false,$ch->iteminstance));
- fwrite ($bf,full_tag("ITEMNUMBER",5,false,$ch->itemnumber));
- fwrite ($bf,full_tag("ITEMINFO",5,false,$ch->iteminfo));
- fwrite ($bf,full_tag("IDNUMBER",5,false,$ch->idnumber));
- fwrite ($bf,full_tag("CALCULATION",5,false,$ch->calculation));
- fwrite ($bf,full_tag("GRADETYPE",5,false,$ch->gradetype));
- fwrite ($bf,full_tag("GRADEMAX",5,false,$ch->grademax));
- fwrite ($bf,full_tag("GRADEMIN",5,false,$ch->grademin));
- fwrite ($bf,full_tag("SCALEID",5,false,$ch->scaleid));
- fwrite ($bf,full_tag("OUTCOMEID",5,false,$ch->outcomeid));
- fwrite ($bf,full_tag("GRADEPASS",5,false,$ch->gradepass));
- fwrite ($bf,full_tag("MULTFACTOR",5,false,$ch->multfactor));
- fwrite ($bf,full_tag("PLUSFACTOR",5,false,$ch->plusfactor));
- fwrite ($bf,full_tag("AGGREGATIONCOEF",5,false,$ch->aggregationcoef));
- fwrite ($bf,full_tag("SORTORDER",5,false,$ch->sortorder));
- //fwrite ($bf,full_tag("DISPLAY",7,false,$ch->display));
- //fwrite ($bf,full_tag("DECIMALS",7,false,$ch->decimals));
- fwrite ($bf,full_tag("HIDDEN",5,false,$ch->hidden));
- fwrite ($bf,full_tag("LOCKED",5,false,$ch->locked));
- fwrite ($bf,full_tag("LOCKTIME",5,false,$ch->locktime));
- fwrite ($bf,full_tag("NEEDSUPDATE",5,false,$ch->needsupdate));
- fwrite ($bf,end_tag("GRADE_ITEM_HISTORY",4,true));
- }
- $status = fwrite ($bf,end_tag("GRADE_ITEM_HISTORIES",3,true));
-
- }
- return $status;
- }
-
- function backup_gradebook_outcomes_history($bf, $preferences) {
- global $CFG, $DB;
- $status = true;
-
- // find all grade categories history
- if ($chs = $DB->get_records('grade_outcomes_history', array('courseid'=>$preferences->backup_course))) {
- fwrite ($bf,start_tag("GRADE_OUTCOME_HISTORIES",3,true));
- foreach ($chs as $ch) {
- fwrite ($bf,start_tag("GRADE_OUTCOME_HISTORY",4,true));
- fwrite ($bf,full_tag("ID",5,false,$ch->id));
- fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid));
- fwrite ($bf,full_tag("ACTION",5,false,$ch->action));
- fwrite ($bf,full_tag("SOURCE",5,false,$ch->source));
- fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified));
- fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser));
- fwrite ($bf,full_tag("SHORTNAME",5,false,$ch->shortname));
- fwrite ($bf,full_tag("FULLNAME",5,false,$ch->fullname));
- fwrite ($bf,full_tag("SCALEID",5,false,$ch->scaleid));
- fwrite ($bf,full_tag("DESCRIPTION",5,false,$ch->description));
- fwrite ($bf,end_tag("GRADE_OUTCOME_HISTORY",4,true));
- }
- $status = fwrite ($bf,end_tag("GRADE_OUTCOME_HISTORIES",3,true));
- }
- return $status;
- }
-
- //Backup events info (course events)
- function backup_events_info($bf,$preferences) {
- global $CFG, $DB;
-
- $status = true;
-
- //Counter, points to current record
- $counter = 0;
-
- //Get events (course events)
- $events = $DB->get_records("event", array("courseid"=>$preferences->backup_course, 'instance'=>0),"id");
-
- //Pring events header
- if ($events) {
- //Pring events header
- fwrite ($bf,start_tag("EVENTS",2,true));
- //Iterate
- foreach ($events as $event) {
- //Begin event tag
- fwrite ($bf,start_tag("EVENT",3,true));
- //Output event tag
- fwrite ($bf,full_tag("ID",4,false,$event->id));
- fwrite ($bf,full_tag("NAME",4,false,$event->name));
- fwrite ($bf,full_tag("DESCRIPTION",4,false,$event->description));
- fwrite ($bf,full_tag("FORMAT",4,false,$event->format));
- fwrite ($bf,full_tag("GROUPID",4,false,$event->groupid));
- fwrite ($bf,full_tag("USERID",4,false,$event->userid));
- fwrite ($bf,full_tag("REPEATID",4,false,$event->repeatid));
- fwrite ($bf,full_tag("EVENTTYPE",4,false,$event->eventtype));
- fwrite ($bf,full_tag("MODULENAME",4,false,$event->modulename));
- fwrite ($bf,full_tag("TIMESTART",4,false,$event->timestart));
- fwrite ($bf,full_tag("TIMEDURATION",4,false,$event->timeduration));
- fwrite ($bf,full_tag("VISIBLE",4,false,$event->visible));
- fwrite ($bf,full_tag("TIMEMODIFIED",4,false,$event->timemodified));
- //End event tag
- fwrite ($bf,end_tag("EVENT",3,true));
- }
- //End events tag
- $status = fwrite ($bf,end_tag("EVENTS",2,true));
- }
- return $status;
- }
diff --git a/backup/bb/README.txt b/backup/bb/README.txt
deleted file mode 100644
index 768a8013b20..00000000000
--- a/backup/bb/README.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-Ziba Scott 06/23/05
-
-This is a utility to convert Blackboard Course export zip files into
-Moodle course export zip files. It has been successfully tested with
-Blackboard 5.5 and Moodle 1.4.1 and Moodle CVS. There is minimal
-Blackboard 6 support. It will convert:
-
- * Course Name/Title
- * Forum Topics
- * Course Documents
- * Assignments
- * External Links
-
-
-AUTOMATED OPERATION:
-
- REQUIREMENTS FOR WEB INTERFACE:
- *Moodle 1.4.1 or greater
- *PHP 4.3 compiled with --enable-xslt --with-xslt-sablot options
- (Check php.net for instructions on enabling xslt for your platform)
- *Alternatively, PHP 5 compiled with xml and xsl support (-with-xsl)
-
- INSTALLATION:
- *Unpack this file into the "backup" directory
-
-
-
-MANUAL OPERATION:
-
- REQUIREMENTS:
-
- *An XSLT 1.0 processor (like Sablotron)
- *A zipping utility
-
- REQUIREMENTS FOR COMMAND LINE INTERFACE:
-
- *Linux/Unix
- *PHP 4 compiled with --enable-xslt --with-xslt-sablot options.
- *PHP 5 compiled with -with-xsl and the default xml support left in.
- *Apache with write access to /tmp
- *A commandline zipping utility
-
- COMMAND LINE INSTRUCTIONS:
-
- 1) Download and uncompress the Blackboard export into a directory.
-
- 2) Copy bb2moodle.xslt into the Blackboard course directory.
-
- 3) Run your XSLT processor on imsmanifest.xml with bb2moodle.xslt
- as the input and moodle.xml as the output. If you are using
- Sablotron on linux, this command will look like this:
- sabcmd bb2moodle.xslt imsmanifest.xml > moodle.xml
-
- 4) Create a moodle zip file with this structure:
- moodle.xml
- user_files/
- course_files/
-
- 5) Copy every subdirectory and its contents from the Blackboard
- export directory into the course_files directory. This does
- not include the Blackboard XML files, only the course
- documents. Your moodle zip file will now look similar to
- this:
- moodle.xml
- user_files/
- course_files/res0009/myfile.doc
- course_files/res0010/myotherfile.doc
- course_files/res0010/mypicture.jpg
-
- 6) Upload and restore your moodle zip file
diff --git a/backup/bb/bb5.5_to_moodle.xsl b/backup/bb/bb5.5_to_moodle.xsl
deleted file mode 100644
index e3e736cbf1e..00000000000
--- a/backup/bb/bb5.5_to_moodle.xsl
+++ /dev/null
@@ -1,804 +0,0 @@
-
-
-
-
-
-
- backup-from-blackboard.zip
- 2004083100
- 1.4
- 2004083100
- 1.4
- 1094240862
- INSERT URL HERE
-
-
- assignment
- true
- true
-
-
- chat
- true
- true
-
-
- choice
- true
- true
-
-
- forum
- true
- true
-
-
- glossary
- true
- true
-
-
- journal
- true
- true
-
-
- label
- true
- true
-
-
- lesson
- true
- true
-
-
- quiz
- false
- false
-
-
- resource
- true
- true
-
-
- scorm
- false
- false
-
-
- survey
- false
- false
-
-
- wiki
- false
- false
-
-
- workshop
- true
- true
-
- course
- false
- false
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- false
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2
-
-
-
-
-
- 4
- topics
- 1
- participants,activity_modules,search_forums,admin,course_list:news_items,calendar_upcoming,recent_activity
- 5
- Teacher
- Teachers
- Student
- Students
-
-
- 1
- 0
-
-
-
- 1094270400
- 0
- 10
- 2097152
- 0
- 0
- 0
-
-
- 0
-
-
- 1
- 0
-
-
-
- 0
- 1094240775
- 1094240775
-
-
-
-
-
-
-
-
-
-
- 0
- 0
- <div style="text-align: center;"><font size="5" style="font-family: arial,helvetica,sans-serif;"></font></div>
-
-
- 1
-
-
- 1
-
-
-
-
-
-
- 1.
-
-
-
-
- <span style="font-weight: bold;"></span>
- 1
-
-
-
-
-
-
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.
- 1.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.
-
- 1.
-
-
-
-
-
-
-
-
-
- label
-
-
-
-
-
- 0
-
- resource
-
-
-
-
-
-
-
-
-
-
-
-
- label
-
-
-
-
-
-
-
-
-
- resource
-
-
-
-
-
-
-
-
-
- label
-
-
-
-
-
-
- resource
-
-
-
-
-
-
-
-
-
- resource
- -->
-
-
-
-
-
-
-
-
-
-
-
-
- 1.
- 1.
-
-
-
- 10
-
-
-
-
-
-
- 1094240775
- 0
- 0
-
- 1
- 0
-
-
-
-
-
-
-
- 1.
-
-
-
- label
-
-
-
-
-
-
-
- <span style="font-style: italic;">
-
-
-
-
- :</span>
-
-
-
-
-
- 1094240775
-
-
-
-
-
- 1.
-
-
-
- resource
-
-
-
-
- file
-
-
- /
-
-
-
-
-
-
-
- 1094240775
-
-
-
-
-
-
- 1.
-
-
- resource
-
-
-
- text
-
-
-
-
-
- Title:
- Given Name:
- Family Name:
- Phone:
- Office Hours:
- Office Address:
- Homepage:
-
-
-
- 1094240775
-
-
-
-
-
- 1.
-
-
- resource
-
-
-
-
-
- text
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1094240775
-
-
-
-
-
- 1.
-
-
- resource
-
-
-
- file
-
-
-
-
- <br/>
-
-
-
-
-
-
-
- 1094240775
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.
-
-
-
-
-
-
-
-
-
- 1.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.
-
-
- forum
- general
-
-
-
-
-
-
- 2
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
- 1
- 1094748430
- 1094748430
- 1
-
-
- 1
-
- 0
-
-
-
-
-
-
- 0
-
-
-
-
-
-
- 1.
-
- 1
-
- News forum
-
- news
- 1
- 1094240775
- 0
- 0
- 0
- 1
- 0
-
-
-
-
- 1.
-
-
- forum
- news
- News forum
- General news and announcements
- 2
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.
-
-
-
-
-
-
- 1
- -1
- 1
- 1094748430
- 1
-
-
-
- 0
- 1
- 1094748430
- 1094748430
- 1
-
-
- 1
-
- 0
-
-
-
-
-
-
-
-
-
-
diff --git a/backup/bb/bb6_to_moodle.xsl b/backup/bb/bb6_to_moodle.xsl
deleted file mode 100644
index 90748505382..00000000000
--- a/backup/bb/bb6_to_moodle.xsl
+++ /dev/null
@@ -1,690 +0,0 @@
-
-
-
-
-
-
- backup-from-blackboard.zip
- 2004083100
- 1.4
- 2004083100
- 1.4
- 1094240862
- INSERT URL HERE
-
-
- assignment
- true
- true
-
-
- chat
- true
- true
-
-
- choice
- true
- true
-
-
- forum
- true
- true
-
-
- glossary
- true
- true
-
-
- journal
- true
- true
-
-
- label
- true
- true
-
-
- lesson
- true
- true
-
-
- quiz
- true
- true
-
-
- resource
- true
- true
-
-
- scorm
- true
- true
-
-
- survey
- true
- true
-
-
- wiki
- true
- true
-
-
- workshop
- true
- true
-
- course
- false
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- false
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
- 2
-
-
-
-
-
- 4
- topics
- 1
- participants,activity_modules,search_forums,admin,course_list:news_items,calendar_upcoming,recent_activity
- 5
- Teacher
- Teachers
- Student
- Students
- 0
- 1094270400
- 0
- 10
- 2097152
- 0
- 0
- 0
-
-
- 0
- 1
- 0
- 1094240775
- 1094240775
-
-
-
-
-
-
-
-
- 0
- 0
- <div style="text-align: center;"><font size="5" style="font-family: arial,helvetica,sans-serif;"></font></div>
-
-
- 1
-
-
-
-
-
-
- 1.
-
-
-
-
- <span style="font-weight: bold;"></span>
- 1
-
-
-
-
-
-
- 0
-
-
-
-
-
-
-
-
-
-
- 0
-
-
-
-
-
-
-
-
-
-
- 1.
- 1.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.
- 1.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.
-
- 1.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.
- 1.
-
- 10
-
-
-
-
-
-
- label
-
- 1094240775
- 0
- 0
-
- 1
- 0
-
-
-
-
-
-
- 1.
- 1.
-
- 0
-
-
-
-
-
-
- resource
-
- 1094240775
- 0
- 0
-
- 1
- 0
-
-
-
-
-
-
- 1.
- 1.
-
- 0
-
-
-
- resource
-
- 1094240775
- 0
- 0
-
- 1
- 0
-
-
-
-
-
-
- 1.
-
-
- label
-
-
-
-
-
-
-
- <span style="font-style: italic;">
-
-
-
-
- :</span>
-
-
-
-
-
-
-
- 1094240775
-
-
-
-
-
- 1.
-
-
-
- resource
-
-
-
-
-
-
- file
- /
-
-
-
-
-
-
- 1094240775
-
-
-
-
-
- 1.
-
-
- resource
-
-
-
-
-
-
- text
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1094240775
-
-
-
-
-
- 1.
-
-
- resource
-
-
-
- file
-
-
-
-
- <br/>
-
-
-
-
-
-
-
- 1094240775
-
-
-
-
-
- 1.
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.
-
-
- forum
- general
-
-
-
-
-
-
- 2
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
- 1
- 1094748430
- 1094748430
- 1
-
-
- 1
-
- 0
-
-
-
-
-
-
- 0
-
-
-
-
-
-
-
-
-
diff --git a/backup/bb/restore_bb.php b/backup/bb/restore_bb.php
deleted file mode 100644
index 962c46b7efc..00000000000
--- a/backup/bb/restore_bb.php
+++ /dev/null
@@ -1,125 +0,0 @@
- 10-25-04
-require_once($CFG->dirroot.'/backup/bb/xsl_emulate_xslt.inc');
-
-function get_subdirs($directory){
- if (!$opendirectory = opendir( $directory )) {
- return array();
- }
- while(false !== ($filename = readdir($opendirectory))) {
- if (is_dir($directory.$filename) and $filename != ".." and $filename != "."){
- $subdirs[] = $filename;
- }
- }
- closedir($opendirectory);
- return $subdirs;
-}
-
-
-function choose_bb_xsl($manifest){
- $f = fopen($manifest,"r");
- $buffer = fgets($f, 400);
- $buffer = fgets($f, 400);
- fclose($f);
- if (strstr($buffer,"xmlns:bb=\"http://www.blackboard.com/content-packaging/\"")){
- return "bb6_to_moodle.xsl";
- }
- return "bb5.5_to_moodle.xsl";
-}
-
-
-function blackboard_convert($dir){
- global $CFG, $OUTPUT;
-
- throw new coding_exception('bb_convert was not converted to new file api yet, sorry');
-
- // Check for a Blackboard manifest file
- if (is_readable($dir.'/imsmanifest.xml') && !is_readable($dir.'/moodle.xml')){
-
- if (!function_exists('xslt_create')) { // XSLT MUST be installed for this to work
- echo $OUTPUT->notification('You need the XSLT library installed in PHP to open this Blackboard file');
- return false;
- }
-
- //Select the proper XSL file
- $xslt_file = choose_bb_xsl($dir.'/imsmanifest.xml');
-
-
- //TODO: Use the get_string function for this
- echo "Converting Blackboard export";
-
- // The XSL file must be in the same directory as the Blackboard files when it is processed
- if (!copy($CFG->dirroot."/backup/bb/$xslt_file", "$dir/$xslt_file")) {
- echo $OUTPUT->notification('Could not copy the XSLT file to '."$dir/$xslt_file");
- return false;
- }
-
- // Change to that directory
- $startdir = getcwd();
- chdir($dir);
-
-
- // Process the Blackboard XML files with the chosen XSL file.
- // The imsmanifest contains all the XML files and their relationships.
- // The XSL processor will open them as needed.
- $xsltproc = xslt_create();
- if (!xslt_process($xsltproc, 'imsmanifest.xml', "$dir/$xslt_file", "$dir/moodle.xml")) {
- echo $OUTPUT->notification('Failed writing xml file');
- chdir($startdir);
- return false;
- }
-
-
- // Copy the Blackboard course files into the moodle course_files structure
- $subdirs = get_subdirs($dir."/");
- mkdir("$dir/course_files", $CFG->directorypermissions);
- foreach ($subdirs as $subdir){
- rename($subdir, "course_files/$subdir");
- rename_hexfiles($subdir);
- }
-
- chdir($startdir);
-
- // Blackboard export successfully converted
- return true;
- }
- // This is not a Blackboard export
- return true;
-
-}
-
-/**
- * grabs all files in the directory, checks if the filenames start with a ! or @
- * then checks to see if the name is a hex - if so, it translates/renames correctly.
- *
- * @param string $subdir - the directory to parse.
- *
- */
-function rename_hexfiles($subdir) {
- //this bit of code grabs all files in the directory, and if they start with ! or @, performs the name conversion
- if ($handle = opendir("course_files/$subdir")) {
- while ($file = readdir($handle)) {
- if ($file == '..' or $file == '.') { //don't bother processing these!
- continue;
- }
- if(substr($file,0,1)=="!" || substr($file,0,1)=="@"){
- $outputfilename = "";
- $filebase = substr($file,1,strrpos($file,".")-1);
- if (ctype_xdigit($filebase)) { //check if this name is a hex - if not, don't bother to rename
- $filenamesplit = str_split($filebase,2);
- foreach($filenamesplit as $hexvalue){
- $outputfilename .= chr(hexdec($hexvalue));
- }
- $outputfilename .= strrchr($file,".");
- rename("course_files/$subdir/$file","course_files/$subdir/$outputfilename");
- }
- }
- }
- closedir($handle);
- }
-}
diff --git a/backup/bb/xsl_emulate_xslt.inc b/backup/bb/xsl_emulate_xslt.inc
deleted file mode 100644
index 8b078fd227a..00000000000
--- a/backup/bb/xsl_emulate_xslt.inc
+++ /dev/null
@@ -1,43 +0,0 @@
-load($xmlfile);
- $xsl = new DOMDocument;
- $xsl->load($xslfile);
- $proc->importStylesheet($xsl);
-
- // Squash warnings here because xsl complains about COURSE_ACCESS tags which really are invalid XML (multiple root elements)
- if($resultfile !== null) {
- $fp = fopen($resultfile, 'w');
- fwrite($fp, @$proc->transformToXML($doc));
- fclose($fp);
- return true;
- } else {
- return @$proc->transformToXML($doc);
- }
-}
-
-} // end if(true)
diff --git a/backup/lib.php b/backup/lib.php
deleted file mode 100644
index 1d85fc543c8..00000000000
--- a/backup/lib.php
+++ /dev/null
@@ -1,491 +0,0 @@
-libdir . '/completionlib.php');
-
- //Sets a name/value pair in config_plugin table
- function backup_set_config($name, $value) {
- return set_config($name, $value, 'backup');
- }
-
- //Gets all the information from config_plugin table
- function backup_get_config() {
- $backup_config = get_config('backup');
- return (object)$backup_config;
- }
-
- //Delete old data in backup tables (if exists)
- //Four hours seem to be appropiate now that backup is stable
- function backup_delete_old_data() {
- global $CFG, $DB;
-
- //Change this if you want !!
- $hours = 4;
- //End change this
- $seconds = $hours * 60 * 60;
- $delete_from = time()-$seconds;
- //Now delete from tables
- $status = $DB->execute("DELETE FROM {backup_ids}
- WHERE backup_code < ?", array($delete_from));
- if ($status) {
- $status = $DB->execute("DELETE FROM {backup_files}
- WHERE backup_code < ?", array($delete_from));
- }
- //Now, delete old directory (if exists)
- if ($status) {
- $status = backup_delete_old_dirs($delete_from);
- }
- return($status);
- }
-
- //Function to delete dirs/files into temp/backup directory
- //older than $delete_from
- function backup_delete_old_dirs($delete_from) {
-
- global $CFG;
-
- $status = true;
- //Get files and directories in the temp backup dir witout descend
- $list = get_directory_list($CFG->tempdir."/backup", "", false, true, true);
- foreach ($list as $file) {
- $file_path = $CFG->tempdir."/backup/".$file;
- $moddate = filemtime($file_path);
- if ($status && $moddate < $delete_from) {
- //If directory, recurse
- if (is_dir($file_path)) {
- $status = delete_dir_contents($file_path);
- //There is nothing, delete the directory itself
- if ($status) {
- $status = rmdir($file_path);
- }
- //If file
- } else {
- unlink("$file_path");
- }
- }
- }
-
- return $status;
- }
-
- //Function to check and create the needed dir to
- //save all the backup
- function check_and_create_backup_dir($backup_unique_code) {
- global $CFG;
-
- $status = check_dir_exists($CFG->tempdir."",true);
- if ($status) {
- $status = check_dir_exists($CFG->tempdir."/backup",true);
- }
- if ($status) {
- $status = check_dir_exists($CFG->tempdir."/backup/".$backup_unique_code,true);
- }
-
- return $status;
- }
-
- //Function to delete all the directory contents recursively
- //it supports a excluded dit too
- //Copied from the web !!
- function delete_dir_contents ($dir,$excludeddir="") {
- global $CFG;
-
- if (!is_dir($dir)) {
- // if we've been given a directory that doesn't exist yet, return true.
- // this happens when we're trying to clear out a course that has only just
- // been created.
- return true;
- }
- $slash = "/";
-
- // Create arrays to store files and directories
- $dir_files = array();
- $dir_subdirs = array();
-
- // Make sure we can delete it
- chmod($dir, $CFG->directorypermissions);
-
- if ((($handle = opendir($dir))) == FALSE) {
- // The directory could not be opened
- return false;
- }
-
- // Loop through all directory entries, and construct two temporary arrays containing files and sub directories
- while (false !== ($entry = readdir($handle))) {
- if (is_dir($dir. $slash .$entry) && $entry != ".." && $entry != "." && $entry != $excludeddir) {
- $dir_subdirs[] = $dir. $slash .$entry;
- }
- else if ($entry != ".." && $entry != "." && $entry != $excludeddir) {
- $dir_files[] = $dir. $slash .$entry;
- }
- }
-
- // Delete all files in the curent directory return false and halt if a file cannot be removed
- $countdirfiles = count($dir_files);
- for ($i=0; $i<$countdirfiles; $i++) {
- chmod($dir_files[$i], $CFG->directorypermissions);
- if (((unlink($dir_files[$i]))) == FALSE) {
- return false;
- }
- }
-
- // Empty sub directories and then remove the directory
- $countdirsubdirs = count($dir_subdirs);
- for($i=0; $i<$countdirsubdirs; $i++) {
- chmod($dir_subdirs[$i], $CFG->directorypermissions);
- if (delete_dir_contents($dir_subdirs[$i]) == FALSE) {
- return false;
- }
- else {
- if (remove_dir($dir_subdirs[$i]) == FALSE) {
- return false;
- }
- }
- }
-
- // Close directory
- closedir($handle);
-
- // Success, every thing is gone return true
- return true;
- }
-
- //Function to clear (empty) the contents of the backup_dir
- function clear_backup_dir($backup_unique_code) {
- global $CFG;
-
- $rootdir = $CFG->tempdir."/backup/".$backup_unique_code;
-
- //Delete recursively
- $status = delete_dir_contents($rootdir);
-
- return $status;
- }
-
- //Returns the module type of a course_module's id in a course
- function get_module_type ($courseid,$moduleid) {
- global $DB;
-
- $results = $DB->get_records_sql("SELECT cm.id, m.name
- FROM {course_modules} cm, {modules} m
- WHERE cm.course = ? AND cm.id = ? AND
- m.id = cm.module", array($courseid, $moduleid));
-
- if ($results) {
- $name = $results[$moduleid]->name;
- } else {
- $name = false;
- }
- return $name;
- }
-
- //This function return the names of all directories under a give directory
- //Not recursive
- function list_directories ($rootdir) {
-
- $results = null;
-
- $dir = opendir($rootdir);
- while (false !== ($file=readdir($dir))) {
- if ($file=="." || $file=="..") {
- continue;
- }
- if (is_dir($rootdir."/".$file)) {
- $results[$file] = $file;
- }
- }
- closedir($dir);
- return $results;
- }
-
- //This function return the names of all directories and files under a give directory
- //Not recursive
- function list_directories_and_files ($rootdir) {
-
- $results = "";
-
- $dir = opendir($rootdir);
- while (false !== ($file=readdir($dir))) {
- if ($file=="." || $file=="..") {
- continue;
- }
- $results[$file] = $file;
- }
- closedir($dir);
- return $results;
- }
-
- //This function clean data from backup tables and
- //delete all temp files used
- function clean_temp_data ($preferences) {
- global $CFG, $DB;
-
- $status = true;
-
- //true->do it, false->don't do it. To debug if necessary.
- if (true) {
- //Now delete from tables
- $status = $DB->delete_records('backup_ids', array('backup_code'=>$preferences->backup_unique_code))
- && $DB->delete_records('backup_files', array('backup_code'=>$preferences->backup_unique_code));
-
- //Now, delete temp directory (if exists)
- $file_path = $CFG->tempdir."/backup/".$preferences->backup_unique_code;
- if (is_dir($file_path)) {
- $status = delete_dir_contents($file_path);
- //There is nothing, delete the directory itself
- if ($status) {
- $status = rmdir($file_path);
- }
- }
- }
- return $status;
- }
-
- // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- //This functions are used to copy any file or directory ($from_file)
- //to a new file or directory ($to_file). It works recursively and
- //mantains file perms.
- //I've copied it from: http://www.php.net/manual/en/function.copy.php
- //Little modifications done
-
- function backup_copy_file ($from_file,$to_file,$log_clam=false) {
- global $CFG;
-
- if (is_file($from_file)) {
- //echo "
Copying ".$from_file." to ".$to_file; //Debug
- //$perms=fileperms($from_file);
- //return copy($from_file,$to_file) && chmod($to_file,$perms);
- umask(0000);
- if (copy($from_file,$to_file)) {
- chmod($to_file,$CFG->directorypermissions);
- if (!empty($log_clam)) {
- //clam_log_upload($to_file,null,true);
- }
- return true;
- }
- return false;
- }
- else if (is_dir($from_file)) {
- return backup_copy_dir($from_file,$to_file);
- }
- else{
- //echo "
Error: not file or dir ".$from_file; //Debug
- return false;
- }
- }
-
- function backup_copy_dir($from_file,$to_file) {
- global $CFG;
-
- $status = true; // Initialize this, next code will change its value if needed
-
- if (!is_dir($to_file)) {
- //echo "
Creating ".$to_file; //Debug
- umask(0000);
- $status = mkdir($to_file,$CFG->directorypermissions);
- }
- $dir = opendir($from_file);
- while (false !== ($file=readdir($dir))) {
- if ($file=="." || $file=="..") {
- continue;
- }
- $status = backup_copy_file ("$from_file/$file","$to_file/$file");
- }
- closedir($dir);
- return $status;
- }
- ///Ends copy file/dirs functions
- // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- /**
- * Are we restoring a backup that was made on the same site that we are restoring to?
- * This relies on some information that was only added to backup files in January 2009.
- * For older backup files, fall back to guessing based on wwwroot. MDL-16614 explains
- * when this guess could give the wrong answer.
- * @return boolean true if the backup was made on the same site we are restoring to.
- */
- function backup_is_same_site(&$restore) {
- global $CFG;
- static $hashedsiteid = null;
- if (is_null($hashedsiteid)) {
- $hashedsiteid = md5(get_site_identifier());
- }
- if (!empty($restore->original_siteidentifier)) {
- return $restore->original_siteidentifier == $hashedsiteid;
- } else {
- return $restore->original_wwwroot == $CFG->wwwroot;
- }
- }
-
- //This function is used to insert records in the backup_ids table
- //If the info field is greater than max_db_storage, then its info
- //is saved to filesystem
- function backup_putid($backup_unique_code, $table, $old_id, $new_id, $info="") {
- global $CFG, $DB;
-
- $max_db_storage = 128; //Max bytes to save to db, else save to file
-
- $status = true;
-
- //First delete to avoid PK duplicates
- $status = backup_delid($backup_unique_code, $table, $old_id);
-
- //Now, serialize info
- $info_ser = serialize($info);
-
- //Now, if the size of $info_ser > $max_db_storage, save it to filesystem and
- //insert a "infile" in the info field
-
- if (strlen($info_ser) > $max_db_storage) {
- //Calculate filename (in current_backup_dir, $backup_unique_code_$table_$old_id.info)
- $filename = $CFG->tempdir."/backup/".$backup_unique_code."/".$backup_unique_code."_".$table."_".$old_id.".info";
- //Save data to file
- $status = backup_data2file($filename,$info_ser);
- //Set info_to save
- $info_to_save = "infile";
- } else {
- //Saving to db
- $info_to_save = $info_ser;
- }
-
- //Now, insert the record
- if ($status) {
- //Build the record
- $rec = new stdClass();
- $rec->backup_code = $backup_unique_code;
- $rec->table_name = $table;
- $rec->old_id = $old_id;
- $rec->new_id = ($new_id === null? 0 : $new_id);
- $rec->info = $info_to_save;
-
- $DB->insert_record('backup_ids', $rec, false);
- }
- return $status;
- }
-
- //This function is used to delete recods from the backup_ids table
- //If the info field is "infile" then the file is deleted too
- function backup_delid ($backup_unique_code, $table, $old_id) {
- global $DB;
- return $DB->delete_records('backup_ids', array('backup_code'=>$backup_unique_code, 'table_name'=>$table, 'old_id'=>$old_id));
- }
-
- //This function is used to get a record from the backup_ids table
- //If the info field is "infile" then its info
- //is read from filesystem
- function backup_getid ($backup_unique_code, $table, $old_id) {
- global $CFG, $DB;
-
- $status = true;
- $status2 = true;
-
- $status = $DB->get_record("backup_ids", array("backup_code"=>$backup_unique_code,
- "table_name"=>$table, "old_id"=>$old_id));
-
- //If info field = "infile", get file contents
- if (!empty($status->info) && $status->info == "infile") {
- $filename = $CFG->tempdir."/backup/".$backup_unique_code."/".$backup_unique_code."_".$table."_".$old_id.".info";
- //Read data from file
- $status2 = backup_file2data($filename,$info);
- if ($status2) {
- //unserialize data
- $status->info = unserialize($info);
- } else {
- $status = false;
- }
- } else {
- //Only if status (record exists)
- if (!empty($status->info)) {
- if ($status->info === 'needed') {
- // TODO: ugly hack - fix before 1.9.1
- debugging('Incorrect string "needed" in $status->info, please fix the code (table:'.$table.'; old_id:'.$old_id.').', DEBUG_DEVELOPER);
- } else {
- ////First strip slashes
- $temp = $status->info;
- //Now unserialize
- $status->info = unserialize($temp);
- }
- }
- }
-
- return $status;
- }
-
- //This function is used to add slashes (and decode from UTF-8 if needed)
- //It's used intensivelly when restoring modules and saving them in db
- function backup_todb ($data) {
- // MDL-10770
- if ($data === '$@NULL@$') {
- return null;
- } else {
- return restore_decode_absolute_links($data);
- }
- }
-
- //This function is used to check that every necessary function to
- //backup/restore exists in the current php installation. Thanks to
- //gregb@crowncollege.edu by the idea.
- function backup_required_functions($justcheck=false) {
-
- if(!function_exists('utf8_encode')) {
- if (empty($justcheck)) {
- print_error('needphpext', '', '', 'XML');
- } else {
- return false;
- }
- }
-
- return true;
- }
-
- //This function send n white characters to the browser and flush the
- //output buffer. Used to avoid browser timeouts and to show the progress.
- function backup_flush($n=0,$time=false) {
- if (defined('RESTORE_SILENTLY_NOFLUSH')) {
- return;
- }
- if ($time) {
- $ti = strftime("%X",time());
- } else {
- $ti = "";
- }
- echo str_repeat(" ", $n) . $ti . "\n";
- flush();
- }
-
- //This function creates the filename and write data to it
- //returning status as result
- function backup_data2file ($file,&$data) {
-
- $status = true;
- $status2 = true;
-
- $f = fopen($file,"w");
- $status = fwrite($f,$data);
- $status2 = fclose($f);
-
- return ($status && $status2);
- }
-
- //This function read the filename and read data from it
- function backup_file2data ($file,&$data) {
-
- $status = true;
- $status2 = true;
-
- $f = fopen($file,"r");
- $data = fread ($f,filesize($file));
- $status2 = fclose($f);
-
- return ($status && $status2);
- }
diff --git a/backup/restorelib.php b/backup/restorelib.php
deleted file mode 100644
index 911df714a71..00000000000
--- a/backup/restorelib.php
+++ /dev/null
@@ -1,614 +0,0 @@
-mods;
- //Iterate
- foreach($modules as $name => $module) {
- //Only if the module is being restored
- if (isset($module->restore) && $module->restore == 1) {
- //Include module library
- include_once("$CFG->dirroot/mod/$name/lib.php");
- //If module_refresh_events exists
- $function_name = $name."_refresh_events";
- if (function_exists($function_name)) {
- $status = $function_name($restore->course_id);
- }
- }
- }
- return $status;
- }
-
- //Called to set up any course-format specific data that may be in the file
- function restore_set_format_data($restore,$xml_file) {
- global $CFG, $DB;
-
- $status = true;
- //Check it exists
- if (!file_exists($xml_file)) {
- return false;
- }
- //Load data from XML to info
- if(!($info = restore_read_xml_formatdata($xml_file))) {
- return false;
- }
-
- //Process format data if there is any
- if (isset($info->format_data)) {
- if(!$format=$DB->get_field('course','format', array('id'=>$restore->course_id))) {
- return false;
- }
- // If there was any data then it must have a restore method
- $file=$CFG->dirroot."/course/format/$format/restorelib.php";
- if(!file_exists($file)) {
- return false;
- }
- require_once($file);
- $function=$format.'_restore_format_data';
- if(!function_exists($function)) {
- return false;
- }
- return $function($restore,$info->format_data);
- }
-
- // If we got here then there's no data, but that's cool
- return true;
- }
-
- //This function creates all the structures messages and contacts
- function restore_create_messages($restore,$xml_file) {
- global $CFG, $DB;
-
- $status = true;
- //Check it exists
- if (!file_exists($xml_file)) {
- $status = false;
- }
- //Get info from xml
- if ($status) {
- //info will contain the id and name of every table
- //(message, message_read and message_contacts)
- //in backup_ids->info will be the real info (serialized)
- $info = restore_read_xml_messages($restore,$xml_file);
-
- //If we have info, then process messages & contacts
- if ($info > 0) {
- //Count how many we have
- $unreadcount = $DB->count_records ('backup_ids', array('backup_code'=>$restore->backup_unique_code, 'table_name'=>'message'));
- $readcount = $DB->count_records ('backup_ids', array('backup_code'=>$restore->backup_unique_code, 'table_name'=>'message_read'));
- $contactcount = $DB->count_records ('backup_ids', array('backup_code'=>$restore->backup_unique_code, 'table_name'=>'message_contacts'));
- if ($unreadcount || $readcount || $contactcount) {
- //Start ul
- if (!defined('RESTORE_SILENTLY')) {
- echo '';
- }
- //Number of records to get in every chunk
- $recordset_size = 4;
-
- //Process unread
- if ($unreadcount) {
- if (!defined('RESTORE_SILENTLY')) {
- echo '- '.get_string('unreadmessages','message').'
';
- }
- $counter = 0;
- while ($counter < $unreadcount) {
- //Fetch recordset_size records in each iteration
- $recs = $DB->get_records("backup_ids", array('table_name'=>'message', 'backup_code'=>$restore->backup_unique_code),"old_id","old_id",$counter,$recordset_size);
- if ($recs) {
- foreach ($recs as $rec) {
- //Get the full record from backup_ids
- $data = backup_getid($restore->backup_unique_code,"message",$rec->old_id);
- if ($data) {
- //Now get completed xmlized object
- $info = $data->info;
- //traverse_xmlize($info); //Debug
- //print_object ($GLOBALS['traverse_array']); //Debug
- //$GLOBALS['traverse_array']=""; //Debug
- //Now build the MESSAGE record structure
- $dbrec = new stdClass();
- $dbrec->useridfrom = backup_todb($info['MESSAGE']['#']['USERIDFROM']['0']['#']);
- $dbrec->useridto = backup_todb($info['MESSAGE']['#']['USERIDTO']['0']['#']);
- $dbrec->message = backup_todb($info['MESSAGE']['#']['MESSAGE']['0']['#']);
- $dbrec->format = backup_todb($info['MESSAGE']['#']['FORMAT']['0']['#']);
- $dbrec->timecreated = backup_todb($info['MESSAGE']['#']['TIMECREATED']['0']['#']);
- $dbrec->messagetype = backup_todb($info['MESSAGE']['#']['MESSAGETYPE']['0']['#']);
- //We have to recode the useridfrom field
- $user = backup_getid($restore->backup_unique_code,"user",$dbrec->useridfrom);
- if ($user) {
- //echo "User ".$dbrec->useridfrom." to user ".$user->new_id."
"; //Debug
- $dbrec->useridfrom = $user->new_id;
- }
- //We have to recode the useridto field
- $user = backup_getid($restore->backup_unique_code,"user",$dbrec->useridto);
- if ($user) {
- //echo "User ".$dbrec->useridto." to user ".$user->new_id."
"; //Debug
- $dbrec->useridto = $user->new_id;
- }
- //Check if the record doesn't exist in DB!
- $exist = $DB->get_record('message', array('useridfrom'=>$dbrec->useridfrom,
- 'useridto'=>$dbrec->useridto,
- 'timecreated'=>$dbrec->timecreated));
- if (!$exist) {
- //Not exist. Insert
- $status = $DB->insert_record('message',$dbrec);
- } else {
- //Duplicate. Do nothing
- }
- }
- //Do some output
- $counter++;
- if ($counter % 10 == 0) {
- if (!defined('RESTORE_SILENTLY')) {
- echo ".";
- if ($counter % 200 == 0) {
- echo "
";
- }
- }
- backup_flush(300);
- }
- }
- }
- }
- }
-
- //Process read
- if ($readcount) {
- if (!defined('RESTORE_SILENTLY')) {
- echo '- '.get_string('readmessages','message').'
';
- }
- $counter = 0;
- while ($counter < $readcount) {
- //Fetch recordset_size records in each iteration
- $recs = $DB->get_records("backup_ids", array('table_name'=>'message_read', 'backup_code'=>$restore->backup_unique_code),"old_id","old_id",$counter,$recordset_size);
- if ($recs) {
- foreach ($recs as $rec) {
- //Get the full record from backup_ids
- $data = backup_getid($restore->backup_unique_code,"message_read",$rec->old_id);
- if ($data) {
- //Now get completed xmlized object
- $info = $data->info;
- //traverse_xmlize($info); //Debug
- //print_object ($GLOBALS['traverse_array']); //Debug
- //$GLOBALS['traverse_array']=""; //Debug
- //Now build the MESSAGE_READ record structure
- $dbrec->useridfrom = backup_todb($info['MESSAGE']['#']['USERIDFROM']['0']['#']);
- $dbrec->useridto = backup_todb($info['MESSAGE']['#']['USERIDTO']['0']['#']);
- $dbrec->message = backup_todb($info['MESSAGE']['#']['MESSAGE']['0']['#']);
- $dbrec->format = backup_todb($info['MESSAGE']['#']['FORMAT']['0']['#']);
- $dbrec->timecreated = backup_todb($info['MESSAGE']['#']['TIMECREATED']['0']['#']);
- $dbrec->messagetype = backup_todb($info['MESSAGE']['#']['MESSAGETYPE']['0']['#']);
- $dbrec->timeread = backup_todb($info['MESSAGE']['#']['TIMEREAD']['0']['#']);
- $dbrec->mailed = backup_todb($info['MESSAGE']['#']['MAILED']['0']['#']);
- //We have to recode the useridfrom field
- $user = backup_getid($restore->backup_unique_code,"user",$dbrec->useridfrom);
- if ($user) {
- //echo "User ".$dbrec->useridfrom." to user ".$user->new_id."
"; //Debug
- $dbrec->useridfrom = $user->new_id;
- }
- //We have to recode the useridto field
- $user = backup_getid($restore->backup_unique_code,"user",$dbrec->useridto);
- if ($user) {
- //echo "User ".$dbrec->useridto." to user ".$user->new_id."
"; //Debug
- $dbrec->useridto = $user->new_id;
- }
- //Check if the record doesn't exist in DB!
- $exist = $DB->get_record('message_read', array('useridfrom'=>$dbrec->useridfrom,
- 'useridto'=>$dbrec->useridto,
- 'timecreated'=>$dbrec->timecreated));
- if (!$exist) {
- //Not exist. Insert
- $status = $DB->insert_record('message_read',$dbrec);
- } else {
- //Duplicate. Do nothing
- }
- }
- //Do some output
- $counter++;
- if ($counter % 10 == 0) {
- if (!defined('RESTORE_SILENTLY')) {
- echo ".";
- if ($counter % 200 == 0) {
- echo "
";
- }
- }
- backup_flush(300);
- }
- }
- }
- }
- }
-
- //Process contacts
- if ($contactcount) {
- if (!defined('RESTORE_SILENTLY')) {
- echo '- '.textlib::strtolower(get_string('contacts','message')).'
';
- }
- $counter = 0;
- while ($counter < $contactcount) {
- //Fetch recordset_size records in each iteration
- $recs = $DB->get_records("backup_ids", array('table_name'=>'message_contacts', 'backup_code'=>$restore->backup_unique_code),"old_id","old_id",$counter,$recordset_size);
- if ($recs) {
- foreach ($recs as $rec) {
- //Get the full record from backup_ids
- $data = backup_getid($restore->backup_unique_code,"message_contacts",$rec->old_id);
- if ($data) {
- //Now get completed xmlized object
- $info = $data->info;
- //traverse_xmlize($info); //Debug
- //print_object ($GLOBALS['traverse_array']); //Debug
- //$GLOBALS['traverse_array']=""; //Debug
- //Now build the MESSAGE_CONTACTS record structure
- $dbrec->userid = backup_todb($info['CONTACT']['#']['USERID']['0']['#']);
- $dbrec->contactid = backup_todb($info['CONTACT']['#']['CONTACTID']['0']['#']);
- $dbrec->blocked = backup_todb($info['CONTACT']['#']['BLOCKED']['0']['#']);
- //We have to recode the userid field
- $user = backup_getid($restore->backup_unique_code,"user",$dbrec->userid);
- if ($user) {
- //echo "User ".$dbrec->userid." to user ".$user->new_id."
"; //Debug
- $dbrec->userid = $user->new_id;
- }
- //We have to recode the contactid field
- $user = backup_getid($restore->backup_unique_code,"user",$dbrec->contactid);
- if ($user) {
- //echo "User ".$dbrec->contactid." to user ".$user->new_id."
"; //Debug
- $dbrec->contactid = $user->new_id;
- }
- //Check if the record doesn't exist in DB!
- $exist = $DB->get_record('message_contacts', array('userid'=>$dbrec->userid,
- 'contactid'=>$dbrec->contactid));
- if (!$exist) {
- //Not exist. Insert
- $status = $DB->insert_record('message_contacts',$dbrec);
- } else {
- //Duplicate. Do nothing
- }
- }
- //Do some output
- $counter++;
- if ($counter % 10 == 0) {
- if (!defined('RESTORE_SILENTLY')) {
- echo ".";
- if ($counter % 200 == 0) {
- echo "
";
- }
- }
- backup_flush(300);
- }
- }
- }
- }
- }
- if (!defined('RESTORE_SILENTLY')) {
- //End ul
- echo '
';
- }
- }
- }
- }
-
- return $status;
- }
-
- //This function creates all the structures for blogs and blog tags
- function restore_create_blogs($restore,$xml_file) {
- global $CFG, $DB;
-
- $status = true;
- //Check it exists
- if (!file_exists($xml_file)) {
- $status = false;
- }
- //Get info from xml
- if ($status) {
- //info will contain the number of blogs in the backup file
- //in backup_ids->info will be the real info (serialized)
- $info = restore_read_xml_blogs($restore,$xml_file);
-
- //If we have info, then process blogs & blog_tags
- if ($info > 0) {
- //Count how many we have
- $blogcount = $DB->count_records('backup_ids', array('backup_code'=>$restore->backup_unique_code, 'table_name'=>'blog'));
- if ($blogcount) {
- //Number of records to get in every chunk
- $recordset_size = 4;
-
- //Process blog
- if ($blogcount) {
- $counter = 0;
- while ($counter < $blogcount) {
- //Fetch recordset_size records in each iteration
- $recs = $DB->get_records("backup_ids", array("table_name"=>'blog', 'backup_code'=>$restore->backup_unique_code),"old_id","old_id",$counter,$recordset_size);
- if ($recs) {
- foreach ($recs as $rec) {
- //Get the full record from backup_ids
- $data = backup_getid($restore->backup_unique_code,"blog",$rec->old_id);
- if ($data) {
- //Now get completed xmlized object
- $info = $data->info;
- //traverse_xmlize($info); //Debug
- //print_object ($GLOBALS['traverse_array']); //Debug
- //$GLOBALS['traverse_array']=""; //Debug
- //Now build the BLOG record structure
- $dbrec = new stdClass();
- $dbrec->module = backup_todb($info['BLOG']['#']['MODULE']['0']['#']);
- $dbrec->userid = backup_todb($info['BLOG']['#']['USERID']['0']['#']);
- $dbrec->courseid = backup_todb($info['BLOG']['#']['COURSEID']['0']['#']);
- $dbrec->groupid = backup_todb($info['BLOG']['#']['GROUPID']['0']['#']);
- $dbrec->moduleid = backup_todb($info['BLOG']['#']['MODULEID']['0']['#']);
- $dbrec->coursemoduleid = backup_todb($info['BLOG']['#']['COURSEMODULEID']['0']['#']);
- $dbrec->subject = backup_todb($info['BLOG']['#']['SUBJECT']['0']['#']);
- $dbrec->summary = backup_todb($info['BLOG']['#']['SUMMARY']['0']['#']);
- $dbrec->content = backup_todb($info['BLOG']['#']['CONTENT']['0']['#']);
- $dbrec->uniquehash = backup_todb($info['BLOG']['#']['UNIQUEHASH']['0']['#']);
- $dbrec->rating = backup_todb($info['BLOG']['#']['RATING']['0']['#']);
- $dbrec->format = backup_todb($info['BLOG']['#']['FORMAT']['0']['#']);
- $dbrec->attachment = backup_todb($info['BLOG']['#']['ATTACHMENT']['0']['#']);
- $dbrec->publishstate = backup_todb($info['BLOG']['#']['PUBLISHSTATE']['0']['#']);
- $dbrec->lastmodified = backup_todb($info['BLOG']['#']['LASTMODIFIED']['0']['#']);
- $dbrec->created = backup_todb($info['BLOG']['#']['CREATED']['0']['#']);
- $dbrec->usermodified = backup_todb($info['BLOG']['#']['USERMODIFIED']['0']['#']);
-
- //We have to recode the userid field
- $user = backup_getid($restore->backup_unique_code,"user",$dbrec->userid);
- if ($user) {
- //echo "User ".$dbrec->userid." to user ".$user->new_id."
"; //Debug
- $dbrec->userid = $user->new_id;
- }
-
- //Check if the record doesn't exist in DB!
- $exist = $DB->get_record('post', array('userid'=>$dbrec->userid,
- 'subject'=>$dbrec->subject,
- 'created'=>$dbrec->created));
- $newblogid = 0;
- if (!$exist) {
- //Not exist. Insert
- $newblogid = $DB->insert_record('post',$dbrec);
- }
-
- //Going to restore related tags. Check they are enabled and we have inserted a blog
- if ($CFG->usetags && $newblogid) {
- //Look for tags in this blog
- if (isset($info['BLOG']['#']['BLOG_TAGS']['0']['#']['BLOG_TAG'])) {
- $tagsarr = $info['BLOG']['#']['BLOG_TAGS']['0']['#']['BLOG_TAG'];
- //Iterate over tags
- $tags = array();
- $sizetagsarr = sizeof($tagsarr);
- for ($i = 0; $i < $sizetagsarr; $i++) {
- $tag_info = $tagsarr[$i];
- ///traverse_xmlize($tag_info); //Debug
- ///print_object ($GLOBALS['traverse_array']); //Debug
- ///$GLOBALS['traverse_array']=""; //Debug
-
- $name = backup_todb($tag_info['#']['NAME']['0']['#']);
- $rawname = backup_todb($tag_info['#']['RAWNAME']['0']['#']);
-
- $tags[] = $rawname; //Rawname is all we need
- }
- tag_set('post', $newblogid, $tags); //Add all the tags in one API call
- }
- }
- }
- //Do some output
- $counter++;
- if ($counter % 10 == 0) {
- if (!defined('RESTORE_SILENTLY')) {
- echo ".";
- if ($counter % 200 == 0) {
- echo "
";
- }
- }
- backup_flush(300);
- }
- }
- }
- }
- }
- }
- }
- }
-
- return $status;
- }
-
- //This function creates all the course events
- function restore_create_events($restore,$xml_file) {
- global $DB;
-
- global $CFG, $SESSION;
-
- $status = true;
- //Check it exists
- if (!file_exists($xml_file)) {
- $status = false;
- }
- //Get info from xml
- if ($status) {
- //events will contain the old_id of every event
- //in backup_ids->info will be the real info (serialized)
- $events = restore_read_xml_events($restore,$xml_file);
- }
-
- //Get admin->id for later use
- $admin = get_admin();
- $adminid = $admin->id;
-
- //Now, if we have anything in events, we have to restore that
- //events
- if ($events) {
- if ($events !== true) {
- //Iterate over each event
- foreach ($events as $event) {
- //Get record from backup_ids
- $data = backup_getid($restore->backup_unique_code,"event",$event->id);
- //Init variables
- $create_event = false;
-
- if ($data) {
- //Now get completed xmlized object
- $info = $data->info;
- //traverse_xmlize($info); //Debug
- //print_object ($GLOBALS['traverse_array']); //Debug
- //$GLOBALS['traverse_array']=""; //Debug
-
- //if necessary, write to restorelog and adjust date/time fields
- if ($restore->course_startdateoffset) {
- restore_log_date_changes('Events', $restore, $info['EVENT']['#'], array('TIMESTART'));
- }
-
- //Now build the EVENT record structure
- $eve = new stdClass();
- $eve->name = backup_todb($info['EVENT']['#']['NAME']['0']['#']);
- $eve->description = backup_todb($info['EVENT']['#']['DESCRIPTION']['0']['#']);
- $eve->format = backup_todb($info['EVENT']['#']['FORMAT']['0']['#']);
- $eve->courseid = $restore->course_id;
- $eve->groupid = backup_todb($info['EVENT']['#']['GROUPID']['0']['#']);
- $eve->userid = backup_todb($info['EVENT']['#']['USERID']['0']['#']);
- $eve->repeatid = backup_todb($info['EVENT']['#']['REPEATID']['0']['#']);
- $eve->modulename = "";
- if (!empty($info['EVENT']['#']['MODULENAME'])) {
- $eve->modulename = backup_todb($info['EVENT']['#']['MODULENAME']['0']['#']);
- }
- $eve->instance = 0;
- $eve->eventtype = backup_todb($info['EVENT']['#']['EVENTTYPE']['0']['#']);
- $eve->timestart = backup_todb($info['EVENT']['#']['TIMESTART']['0']['#']);
- $eve->timeduration = backup_todb($info['EVENT']['#']['TIMEDURATION']['0']['#']);
- $eve->visible = backup_todb($info['EVENT']['#']['VISIBLE']['0']['#']);
- $eve->timemodified = backup_todb($info['EVENT']['#']['TIMEMODIFIED']['0']['#']);
-
- //Now search if that event exists (by name, description, timestart fields) in
- //restore->course_id course
- //Going to compare LOB columns so, use the cross-db sql_compare_text() in both sides.
- $compare_description_clause = $DB->sql_compare_text('description') . "=" . $DB->sql_compare_text("'" . $eve->description . "'");
- $eve_db = $DB->get_record_select('event',
- "courseid = ? AND name = ? AND $compare_description_clause AND timestart = ?",
- array($eve->courseid, $eve->name, $eve->timestart));
- //If it doesn't exist, create
- if (!$eve_db) {
- $create_event = true;
- }
- //If we must create the event
- if ($create_event) {
-
- //We must recode the userid
- $user = backup_getid($restore->backup_unique_code,"user",$eve->userid);
- if ($user) {
- $eve->userid = $user->new_id;
- } else {
- //Assign it to admin
- $eve->userid = $adminid;
- }
-
- //We have to recode the groupid field
- $group = backup_getid($restore->backup_unique_code,"groups",$eve->groupid);
- if ($group) {
- $eve->groupid = $group->new_id;
- } else {
- //Assign it to group 0
- $eve->groupid = 0;
- }
-
- //The structure is equal to the db, so insert the event
- $newid = $DB->insert_record ("event",$eve);
-
- //We must recode the repeatid if the event has it
- //The repeatid now refers to the id of the original event. (see Bug#5956)
- if ($newid && !empty($eve->repeatid)) {
- $repeat_rec = backup_getid($restore->backup_unique_code,"event_repeatid",$eve->repeatid);
- if ($repeat_rec) { //Exists, so use it...
- $eve->repeatid = $repeat_rec->new_id;
- } else { //Doesn't exists, calculate the next and save it
- $oldrepeatid = $eve->repeatid;
- $eve->repeatid = $newid;
- backup_putid($restore->backup_unique_code,"event_repeatid", $oldrepeatid, $eve->repeatid);
- }
- $eve->id = $newid;
- // update the record to contain the correct repeatid
- $DB->update_record('event',$eve);
- }
- } else {
- //get current event id
- $newid = $eve_db->id;
- }
- if ($newid) {
- //We have the newid, update backup_ids
- backup_putid($restore->backup_unique_code,"event",
- $event->id, $newid);
- }
- }
- }
- }
- } else {
- $status = false;
- }
- return $status;
- }
-
- function restore_execute(&$restore,$info,$course_header,&$errorstr) {
- global $CFG, $USER, $DB, $OUTPUT;
-
- $status = true;
-
- //Now create events as needed
- if ($status) {
- if (!defined('RESTORE_SILENTLY')) {
- echo "".get_string("creatingevents");
- }
- if (!$status = restore_create_events($restore,$xml_file)) {
- if (!defined('RESTORE_SILENTLY')) {
- echo $OUTPUT->notification("Could not restore course events!");
- } else {
- $errorstr = "Could not restore course events!";
- return false;
- }
- }
- if (!defined('RESTORE_SILENTLY')) {
- echo '';
- }
- }
-
- if ($status) {
- //If we are deleting and bringing into a course or making a new course, same situation
- if ($restore->restoreto == RESTORETO_CURRENT_DELETING ||
- $restore->restoreto == RESTORETO_EXISTING_DELETING ||
- $restore->restoreto == RESTORETO_NEW_COURSE) {
- if (!defined('RESTORE_SILENTLY')) {
- echo ''.get_string('courseformatdata');
- }
- if (!$status = restore_set_format_data($restore, $xml_file)) {
- $error = "Error while setting the course format data";
- if (!defined('RESTORE_SILENTLY')) {
- echo $OUTPUT->notification($error);
- } else {
- $errorstr=$error;
- return false;
- }
- }
- if (!defined('RESTORE_SILENTLY')) {
- echo '';
- }
- }
- }
-
- //Now, if all is OK, adjust activity events
- if ($status) {
- if (!defined('RESTORE_SILENTLY')) {
- echo "".get_string("refreshingevents");
- }
- if (!$status = restore_refresh_events($restore)) {
- if (!defined('RESTORE_SILENTLY')) {
- echo $OUTPUT->notification("Could not refresh events for activities!");
- } else {
- $errorstr = "Could not refresh events for activities!";
- return false;
- }
- }
- if (!defined('RESTORE_SILENTLY')) {
- echo '';
- }
- }
- }
diff --git a/backup/upgrade.txt b/backup/upgrade.txt
index 9028e7491bc..245f5457b04 100644
--- a/backup/upgrade.txt
+++ b/backup/upgrade.txt
@@ -7,6 +7,8 @@ information provided here is intended especially for developers.
specify the ORDER BY clause to be used. Previously it was required
to use the set_source_sql() more complex alternative in places
requiring ordering.
+* The old 1.9 files backuplib.php, lib.php and restorelib.php and the bb directory,
+ (all under /backup) have been deleted and no code should rely on them anymore.
=== 2.4 ===
diff --git a/lib/upgradelib.php b/lib/upgradelib.php
index 32d5239d38a..649c282dfc3 100644
--- a/lib/upgradelib.php
+++ b/lib/upgradelib.php
@@ -338,6 +338,8 @@ function upgrade_stale_php_files_present() {
$someexamplesofremovedfiles = array(
// removed in 2.5dev
+ '/backup/lib.php',
+ '/backup/bb/README.txt',
'/lib/excel/test.php',
// removed in 2.4dev
'/admin/tool/unittest/simpletestlib.php',
diff --git a/mod/book/tool/exportimscp/index.php b/mod/book/tool/exportimscp/index.php
index 5e05581efc5..29418edffd4 100644
--- a/mod/book/tool/exportimscp/index.php
+++ b/mod/book/tool/exportimscp/index.php
@@ -27,7 +27,6 @@
require(dirname(__FILE__).'/../../../../config.php');
require_once(dirname(__FILE__).'/locallib.php');
require_once($CFG->dirroot.'/mod/book/locallib.php');
-require_once($CFG->dirroot.'/backup/lib.php');
require_once($CFG->libdir.'/filelib.php');
$id = required_param('id', PARAM_INT); // Course Module ID
diff --git a/report/backups/index.php b/report/backups/index.php
index 1deaa2dca3d..8342486d6ad 100644
--- a/report/backups/index.php
+++ b/report/backups/index.php
@@ -25,7 +25,6 @@
require_once('../../config.php');
require_once($CFG->libdir.'/adminlib.php');
-require_once($CFG->dirroot.'/backup/lib.php');
// Required for constants in backup_cron_automated_helper
require_once($CFG->dirroot.'/backup/util/helper/backup_cron_helper.class.php');
@@ -115,4 +114,4 @@ if (empty($automatedbackupsenabled)) {
}
echo html_writer::table($table);
echo $OUTPUT->box_end();
-echo $OUTPUT->footer();
\ No newline at end of file
+echo $OUTPUT->footer();