id)
// |
// |
// |
// ---------------------------------------------------------------------------------
// | |
//data_records (UL,pk->id, fk->data) data_fields (pk->id, fk->data)
// | |
// | |
// ----------------------------------------------------------------------------- |
// | | | |
//data_ratings(fk->recordid, pk->id) data_comments (fk->recordid, pk->id) | |
// data_content(pk->id, fk->recordid, fk->fieldid)
//
//
//
// Meaning: pk->primary key field of the table
// fk->foreign key to link with parent
// nt->nested field (recursive data)
// CL->course level info
// UL->user level info
// files->table may have files)
//
//-----------------------------------------------------------
//Backup data files because we've selected to backup user info
//and files are user info's level
$fieldids = array(); //array in the format of $fieldids[$oldid]=$newid. This is needed because of double dependencies of multiple tables.
//Return a content encoded to support interactivities linking. Every module
function data_restore_mods($mod,$restore) {
global $CFG;
$status = true;
$data = backup_getid($restore->backup_unique_code,$mod->modtype,$mod->id);
if ($data) {
//Now get completed xmlized object
$info = $data->info;
//First, we check to "course_id" exists and create is as necessary in CFG->dataroot
$dest_dir = $CFG->dataroot."/".$restore->course_id;
check_dir_exists($dest_dir,true);
$file = $dest_dir."/restorelog.html";
$restorelog_file = fopen($file,"a");
//traverse_xmlize($info); //Debug
//print_object ($GLOBALS['traverse_array']); //Debug
//$GLOBALS['traverse_array']=""; //Debug
$database->course = $restore->course_id;
$database->name = backup_todb($info['MOD']['#']['NAME']['0']['#']);
$database->intro = backup_todb($info['MOD']['#']['INTRO']['0']['#']);
$database->ratings = backup_todb($info['MOD']['#']['RATINGS']['0']['#']);
$database->comments = backup_todb($info['MOD']['#']['COMMENTS']['0']['#']);
$database->timeavailablefrom = backup_todb($info['MOD']['#']['TIMEAVAILABLEFROM']['0']['#']);
$date = usergetdate($database->timeavailablefrom);
fwrite ($restorelog_file,"
The Database - ".$database->name."
");
fwrite ($restorelog_file,"The TIMEAVAILABLEFROM was " .$date['weekday'].", ".$date['mday']." ".$date['month']." ".$date['year']."");
$database->timeavailablefrom += $restore->course_startdateoffset;
$date = usergetdate($database->timeavailablefrom);
fwrite ($restorelog_file," the TTIMEAVAILABLEFROM is now " .$date['weekday'].", ".$date['mday']." ".$date['month']." ".$date['year']."
");
$database->timeavailableto = backup_todb($info['MOD']['#']['TIMEAVAILABLETO']['0']['#']);
$date = usergetdate($database->timeavailableto);
fwrite ($restorelog_file,"The TIMEAVAILABLETO was " .$date['weekday'].", ".$date['mday']." ".$date['month']." ".$date['year']."");
$database->timeavailableto += $restore->course_startdateoffset;
$date = usergetdate($database->timeavailableto);
fwrite ($restorelog_file," the TIMEAVAILABLETO is now " .$date['weekday'].", ".$date['mday']." ".$date['month']." ".$date['year']."
");
$database->timeviewfrom = backup_todb($info['MOD']['#']['TIMEVIEWFROM']['0']['#']);
$date = usergetdate($database->timeviewfrom);
fwrite ($restorelog_file,"The TIMEVIEWFROM was " .$date['weekday'].", ".$date['mday']." ".$date['month']." ".$date['year']."");
$database->timeviewfrom += $restore->course_startdateoffset;
$date = usergetdate($database->timeviewfrom);
fwrite ($restorelog_file," the TIMEVIEWFROM is now " .$date['weekday'].", ".$date['mday']." ".$date['month']." ".$date['year']."
");
$database->timeviewto = backup_todb($info['MOD']['#']['TIMEVIEWTO']['0']['#']);
$date = usergetdate($database->timeviewto);
fwrite ($restorelog_file,"The TIMEVIEWTO was " .$date['weekday'].", ".$date['mday']." ".$date['month']." ".$date['year']."");
$database->timeviewto += $restore->course_startdateoffset;
$date = usergetdate($database->timeviewto);
fwrite ($restorelog_file," the TIMEVIEWTO is now " .$date['weekday'].", ".$date['mday']." ".$date['month']." ".$date['year']."
");
$database->participants = backup_todb($info['MOD']['#']['PARTICIPANTS']['0']['#']);
$database->requiredentries = backup_todb($info['MOD']['#']['REQUIREDENTRIES']['0']['#']);
$database->requiredentriestoview = backup_todb($info['MOD']['#']['REQUIREDENTRIESTOVIEW']['0']['#']);
$database->maxentries = backup_todb($info['MOD']['#']['MAXENTRIES']['0']['#']);
$database->rssarticles = backup_todb($info['MOD']['#']['RSSARTICLES']['0']['#']);
$database->singletemplate = backup_todb($info['MOD']['#']['SINGLETEMPLATE']['0']['#']);
$database->listtemplate = backup_todb($info['MOD']['#']['LISTTEMPLATE']['0']['#']);
$database->listtemplateheader = backup_todb($info['MOD']['#']['LISTTEMPLATEHEADER']['0']['#']);
$database->listtemplatefooter = backup_todb($info['MOD']['#']['LISTTEMPLATEFOOTER']['0']['#']);
$database->addtemplate = backup_todb($info['MOD']['#']['ADDTEMPLATE']['0']['#']);
$database->rsstemplate = backup_todb($info['MOD']['#']['RSSTEMPLATE']['0']['#']);
$database->rsstitletemplate = backup_todb($info['MOD']['#']['RSSTITLETEMPLATE']['0']['#']);
$database->csstemplate = backup_todb($info['MOD']['#']['CSSTEMPLATE']['0']['#']);
$database->jstemplate = backup_todb($info['MOD']['#']['JSTEMPLATE']['0']['#']);
$database->approval = backup_todb($info['MOD']['#']['APPROVAL']['0']['#']);
$database->scale = backup_todb($info['MOD']['#']['SCALE']['0']['#']);
$database->assessed = backup_todb($info['MOD']['#']['ASSESSED']['0']['#']);
$database->assesspublic = backup_todb($info['MOD']['#']['ASSESSPUBLIC']['0']['#']);
$newid = insert_record ("data",$database);
//Do some output
if (!defined('RESTORE_SILENTLY')) {
echo "