<?php

$path_backup 		= ROOT . 'backups/';
$path_source 		= ROOT . 'crmdata/';
$path_backupfile 	= ROOT . 'backups/crmdata_backup_'. date("Ymd_Gis") .'.zip';

function ZipDirectory($src_dir, $zip, $dir_in_archive=''){
    $src_dir = str_replace("\\","/",$src_dir);
    $dir_in_archive = str_replace("\\","/",$dir_in_archive);
    $dirHandle = opendir($src_dir);
    while (false !== ($file = readdir($dirHandle)))
    {
        if (($file != '.')&&($file != '..'))
        {
                if (!is_dir($src_dir.$file))
                {
                    $zip->addFile($src_dir.$file, $dir_in_archive.$file);
                }
                else
                {
                    $zip->addEmptyDir($dir_in_archive.$file);
                    $zip = ZipDirectory($src_dir.$file.DIRECTORY_SEPARATOR,$zip,$dir_in_archive.$file.DIRECTORY_SEPARATOR);
                }
        }
    }
    return $zip;
}
    

/* ФУНКЦИЯ СОЗДАНИЯ BACKUP */
function ZipFull($src_dir, $archive_path){
    $zip = new ZipArchive();
    if($zip->open($archive_path, ZIPARCHIVE::CREATE) !== true)
    {
        return false;
    }
    $zip = ZipDirectory($src_dir,$zip);
    $zip->close();
    return true;
}

/* ЗАПУСК СОЗДАНИЯ BACKUP */
if(isset($_POST['NewBackup'])){
	if(ZipFull( $path_source , $path_backupfile )){ 
		$notices[] = 'BackUP успешно создан';
	} else {
		$notices_er[] = 'Ошибка при создании BackUP';
	}
}
/* ФУНКЦИЯ ВОССТАНОВЛЕНИЯ BACKUP */
function UnZip($src_dir, $archive_path){
	$zip = new ZipArchive;
	$res = $zip->open($archive_path);
	if ($res === TRUE) {
		$zip->extractTo($src_dir);
		$zip->close();
		$notices[] = 'BackUP успешно восстановлен';
	} else {
		$notices_er[] = 'Ошибка при восстановлении';
	}
}

/* ЗАПУСК ВОССТАНОВЛЕНИЯ BACKUP */
if(isset($_POST['restFile'])){
	UnZip( $path_source , $_POST['restFileName']);
}

/* ФУНКЦИЯ И ЗАПУСК УДАЛЕНИЯ BACKUP */
if(isset($_POST['delFile'])){
	if (file_exists($path_file . $_POST['delFileName'])) { 
		unlink($_POST['delFileName']);
		$notices[] = 'Файл успешно удален';
	} else { 
		$notices_er[] = 'Ошибка при удалении файла';
	}
}
?>
<div class="table-responsive"> 
	<?php 
	$filelist = glob("$path_backup/*");
	if($filelist) {
	?>
	<table class="table table-hover" style="margin:0px;">
		<thead>
			<tr>
				<th width="5%"></th>
				<th>Наименование файла</th>
				<th width="20%" class="hidden-xs">Размер файла</th>
				<th width="15%" class="hidden-xs">Дата создания</th>
				<th width="4%"></th>
				<th width="4%"></th>
			</tr>
		</thead>
		<tbody>
			<?php
			if($handle = opendir($path_backup)){
				global $path_backup;
				while(false !== ($file = readdir($handle))) {
					if($file != '.' && $file != '..'){
						$fex = pathinfo($file, PATHINFO_EXTENSION);
						echo '<tr>';
						echo '<td><form method="post" style="margin:0;"><input type="hidden" name="restFileName" value="' . $path_backup . $file . '"><button class="btn btn-link" style="text-decoration:none;" type="submit" name="restFile" title="Восстановить BackUP"  onclick="return confirm(\'Вы уверены, что хотите восстановить BackUP # ' . $file . '?\')"><i class="fa fa-history" aria-hidden="true"></i></button></form></td>';
						echo '<td>' . $file . '</td>';
						echo '<td class="hidden-xs">' . round(filesize($path_backup . $file)/1024 , 0) . ' Кб</td>';
						echo '
						<td class="hidden-xs">
							<div class="rem_days_body" >
								<div class="txt" align="center">' . date('d.m.Y H:i', filemtime($path_backup . $file)).'</div>
							</div>
						</td>';
						echo '<td class="hidden-xs"><a href="/' . $folder . '/backups/' . $file . '" class="btn btn-link" title="'.Dict::_('TXTDWNLBACKUP').'" download><i class="fa fa-fw fa-download" aria-hidden="true"></i></a></td>';
						echo '<td><form method="post" style="margin:0;"><input type="hidden" name="delFileName" value="' . $path_backup . $file . '"><button class="btn btn-link" style="text-decoration:none;" type="submit" name="delFile" title="Удалить BackUP" onclick="return confirm(\'Вы уверены, что хотите удалить BackUP # ' . $file . '?\')"><i class="fa fa-times" aria-hidden="true"></i></button></form></td>';
						echo '<tr>';
					}
				}
			}
			?>
		</tbody>
	</table>

	<?php } else { ?>
	<div class="text-center">резервные копии ранее не создавались</div>
	<?php } ?>
</div>