<?php 


	require_once('config.php');

	toLog('старт');

	if ($files = glob(DIR_BACKUP . date("Y/Y-m") . '/file-backup-pano*', GLOB_BRACE)) {
		toLog('в этом месяце уже копия была, аварийный стоп');		
	}else{

		if(extension_loaded('zip')){
			$zip = new ZipArchive();
			mkdir ( DIR_BACKUP . date("Y"), 0777);
			mkdir ( DIR_BACKUP . date("Y/Y-m"), 0777);
			toLog("сохраняю " . DIR_BACKUP . date("Y/Y-m") . '/file-backup-pano'.date("Y-m-d_H-i-s") . '.zip');
			$num = 0;
			if($zip->open(DIR_BACKUP . date("Y/Y-m") . '/file-backup-pano'.date("Y-m-d_H-i-s") . '.zip', ZIPARCHIVE::CREATE)==TRUE){

				$allfiles = array(); // Массив со списком всех файлов, которые будут помещены в архив

				recoursiveDir(DIR_TO_BACKUP . 'pano/');
				
				foreach ($allfiles as $val){
					$zip->addFile($val);
					$num++;
				}
				
				$zip->close();
			}
			toLog("всего " . $num);
		}
		toLog('стоп');
	}
	toLog('');
	
function recoursiveDir($dir){
	global $allfiles;
	if ($files = glob($dir."/{,.}*", GLOB_BRACE)) {
		foreach($files as $file){
			$b_name = basename($file);
			if (($b_name == ".") OR ($b_name == "..")) {
				continue;
			}
			if (is_dir($file)) {
				recoursiveDir($file);
			}else{
				$allfiles[] = $file;
			}
		}
	}
}

function toLog($text){
	file_put_contents(DIR_BACKUP . date("Y/Y-m/") . 'backup.log', chr(13) . chr(10) . date('d/m/Y H:i:s') . chr(9) . '3D:' . chr(9) . chr(9) . $text, FILE_APPEND | LOCK_EX);
}

?>