External backup function
This commit is contained in:
		@@ -54,7 +54,7 @@ $callbacks = local_webhooks_get_list_records();
 | 
			
		||||
 | 
			
		||||
/* Upload settings as a file */
 | 
			
		||||
if (boolval($backupservices)) {
 | 
			
		||||
    $filecontent = local_webhooks_archiving_data($callbacks);
 | 
			
		||||
    $filecontent = local_webhooks_create_backup();
 | 
			
		||||
    $filename    = "webhooks_" . date("U") . ".backup";
 | 
			
		||||
    send_file($filecontent, $filename, 0, 0, true, true);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								lib.php
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								lib.php
									
									
									
									
									
								
							@@ -108,6 +108,32 @@ function local_webhooks_update_record($data, $insert = true) {
 | 
			
		||||
    return boolval($result);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Make a backup copy of all the services.
 | 
			
		||||
 *
 | 
			
		||||
 * @return string
 | 
			
		||||
 */
 | 
			
		||||
function local_webhooks_create_backup() {
 | 
			
		||||
    $listservices = local_webhooks_get_list_records();
 | 
			
		||||
    $listservices = local_webhooks_archiving_data($listservices);
 | 
			
		||||
    return $listservices;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Restore the data from the backup.
 | 
			
		||||
 *
 | 
			
		||||
 * @param string $data
 | 
			
		||||
 */
 | 
			
		||||
function local_webhooks_restore_backup($listservices = "") {
 | 
			
		||||
    $listservices = local_webhooks_unarchive_data($listservices);
 | 
			
		||||
 | 
			
		||||
    local_webhooks_remove_list_records();
 | 
			
		||||
 | 
			
		||||
    foreach ($listservices as $servicerecord) {
 | 
			
		||||
        local_webhooks_update_record($servicerecord, true);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Compress an array into a string.
 | 
			
		||||
 *
 | 
			
		||||
 
 | 
			
		||||
@@ -46,14 +46,8 @@ if ($mform->is_cancelled()) {
 | 
			
		||||
 | 
			
		||||
/* Processing the received file */
 | 
			
		||||
if ($data = $mform->get_data()) {
 | 
			
		||||
    $content   = $mform->get_file_content("backupfile");
 | 
			
		||||
    $callbacks = local_webhooks_unarchive_data($content);
 | 
			
		||||
 | 
			
		||||
    local_webhooks_remove_list_records();
 | 
			
		||||
    foreach ($callbacks as $callback) {
 | 
			
		||||
        local_webhooks_update_record($callback, true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $content = $mform->get_file_content("backupfile");
 | 
			
		||||
    local_webhooks_restore_backup($content);
 | 
			
		||||
    redirect($managerservice, new lang_string("restorefinished", "moodle"));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user