[code.view]

[top] / php / GetSimpleCMS-3.2.3 / admin / zip.php

     <?php
     /**
      * Zip Archive
      *
      * Creates a zip archive of the site
      *
      * @package GetSimple
      * @subpackage Backups
      */
     
     	// Setup inclusions
     	$load['plugin'] = true;
     	
     
     	// Include common.php
     	include('inc/common.php');
     
     // check validity of request
     if ($_REQUEST['s'] === $SESSIONHASH) {
     	
     	
     	# fix from hameau 
     	//$timestamp = date('Y-m-d-Hi');
     	$timestamp = gmdate('Y-m-d-Hi_s');
     	$zipcreated = true;
     	
     	set_time_limit (0);
     	ini_set("memory_limit","800M"); 
     
     	$saved_zip_file = GSBACKUPSPATH.'zip/'. $timestamp .'_archive.zip';	
     	
     	$sourcePath = str_replace('/', DIRECTORY_SEPARATOR, GSROOTPATH);
     	if (!class_exists ( 'ZipArchive' , false)) {
     		include('inc/ZipArchive.php');
     	}
     	if (class_exists ( 'ZipArchive' , false)) {
     	
     		$archiv = new ZipArchive();
     		$archiv->open($saved_zip_file, ZipArchive::CREATE);
     		$dirIter = new RecursiveDirectoryIterator($sourcePath);
     		$iter = new RecursiveIteratorIterator($dirIter);
     		
     		foreach($iter as $element) {
     		    /* @var $element SplFileInfo */
     		    $dir = str_replace($sourcePath, '', $element->getPath()) . DIRECTORY_SEPARATOR;
     		    if ( strstr($dir, $GSADMIN.DIRECTORY_SEPARATOR ) || strstr($dir, 'backups'.DIRECTORY_SEPARATOR )) {
       				#don't archive these folders
     				} else if ($element->getFilename() != '..') { // FIX: if added to ignore parent directories
     				  if ($element->isDir()) {
     				     $archiv->addEmptyDir($dir);
     			    } elseif ($element->isFile()) {
     			        $file         = $element->getPath() .
     			                        DIRECTORY_SEPARATOR  . $element->getFilename();
     			        $fileInArchiv = $dir . $element->getFilename();
     			        // add file to archive 
     			        $archiv->addFile($file, $fileInArchiv);
     			    }
     			  }
     		}
     		
     		$archiv->addFile(GSROOTPATH.'.htaccess', '.htaccess' );
     		$archiv->addFile(GSROOTPATH.'gsconfig.php', 'gsconfig.php' );
     		
     		// save and close 
     		$status = $archiv->close();
     		if (!$status) {
     			$zipcreated = false;
     		}
     		
     	} else {
     		$zipcreated = false;	
     	}
     	if (!$zipcreated) {
     		$zipcreated = archive_targz();
     	}
     	if (!$zipcreated) {
     		redirect('archive.php?nozip');
     	} 
     	
     	// redirect back to archive page with a success
     	redirect('archive.php?done');
     
     } else {
     	# page accessed directly - send back to archives page
     	redirect('archive.php');
     }
     
     exit;
     

[top] / php / GetSimpleCMS-3.2.3 / admin / zip.php

contact | logmethods.com