id)
//
// 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)
//
//-----------------------------------------------------------
//This function executes all the restore procedure about this mod
function label_restore_mods($mod,$restore) {
global $CFG;
$status = true;
//Get record from backup_ids
$data = backup_getid($restore->backup_unique_code,$mod->modtype,$mod->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 LABEL record structure
$label->course = $restore->course_id;
$label->name = backup_todb($info['MOD']['#']['NAME']['0']['#']);
$label->content = backup_todb($info['MOD']['#']['CONTENT']['0']['#']);
$label->timemodified = $info['MOD']['#']['TIMEMODIFIED']['0']['#'];
//The structure is equal to the db, so insert the label
$newid = insert_record ("label",$label);
//Do some output
if (!defined('RESTORE_SILENTLY')) {
echo "
".get_string("modulename","label")." \"".format_string(stripslashes($label->name),true)."\"";
}
backup_flush(300);
if ($newid) {
//We have the newid, update backup_ids
backup_putid($restore->backup_unique_code,$mod->modtype,
$mod->id, $newid);
} else {
$status = false;
}
} else {
$status = false;
}
return $status;
}
function label_decode_content_links_caller($restore) {
global $CFG;
$status = true;
if ($labels = get_records_sql ("SELECT l.id, l.content
FROM {$CFG->prefix}label l
WHERE l.course = $restore->course_id")) {
$i = 0; //Counter to send some output to the browser to avoid timeouts
foreach ($labels as $label) {
//Increment counter
$i++;
$content = $label->content;
$result = restore_decode_content_links_worker($content,$restore);
if ($result != $content) {
//Update record
$label->content = addslashes($result);
$status = update_record("label", $label);
if (debugging()) {
if (!defined('RESTORE_SILENTLY')) {
echo '
'.s($content).'
changed to
'.s($result).'
';
}
}
}
//Do some output
if (($i+1) % 5 == 0) {
if (!defined('RESTORE_SILENTLY')) {
echo ".";
if (($i+1) % 100 == 0) {
echo "
";
}
}
backup_flush(300);
}
}
}
return $status;
}
//This function returns a log record with all the necessay transformations
//done. It's used by restore_log_module() to restore modules log.
function label_restore_logs($restore,$log) {
$status = false;
//Depending of the action, we recode different things
switch ($log->action) {
case "add":
if ($log->cmid) {
//Get the new_id of the module (to recode the info field)
$mod = backup_getid($restore->backup_unique_code,$log->module,$log->info);
if ($mod) {
$log->url = "view.php?id=".$log->cmid;
$log->info = $mod->new_id;
$status = true;
}
}
break;
case "update":
if ($log->cmid) {
//Get the new_id of the module (to recode the info field)
$mod = backup_getid($restore->backup_unique_code,$log->module,$log->info);
if ($mod) {
$log->url = "view.php?id=".$log->cmid;
$log->info = $mod->new_id;
$status = true;
}
}
break;
default:
if (!defined('RESTORE_SILENTLY')) {
echo "action (".$log->module."-".$log->action.") unknown. Not restored
"; //Debug
}
break;
}
if ($status) {
$status = $log;
}
return $status;
}
?>