Вход Регистрация
Файл: upload/include/library/phpfox/archive/export.class.php
Строк: 77
<?php
/**
 * [PHPFOX_HEADER]
 */

defined('PHPFOX') or exit('NO DICE!');

/**
 * Used to export data such as a 3rd party product or language package and
 * compress it into a ZIP archive and force the user to download the package
 * on the spot.
 * 
 * An example of how we would compress a language package and then send it to the user:
 * <code>
 * Phpfox::getLib('archive.export')->download('language-package', 'zip', 'english1');
 * </code>
 * 
 * @copyright        [PHPFOX_COPYRIGHT]
 * @author            Raymond Benc
 * @package         Phpfox
 * @version         $Id: export.class.php 4316 2012-06-21 13:57:37Z Miguel_Espinoza $
 */
class Phpfox_Archive_Export
{
    
/**
     * Supported methods of download for the specific data we plan on passing to the user
     *
     * @var array
     */
    
private $_aArchives = array();
        
    
/**
     * Constructor
     *
     */    
    
public function __construct()
    {        
    }
    
    
/**
     * Set all the support archives you want to allow the user to download the data
     *
     * @param array $aArchives Array of support archives
     * @return object Returns this classes object
     */
    
public function set($aArchives)
    {        
        foreach (
$aArchives as $sArchive)
        {
            if (
$sArchive != 'xml')
            {
                
$aSupported Phpfox::getLib('archive.support')->get($sArchive);                    
                if (!
Phpfox::getLib('archive.extension.' $aSupported['class'])->test())
                {
                    continue;
                }                
            }

            
$this->_aArchives[] = $sArchive;
        }    
        
        ((
$sPlugin Phpfox_Plugin::get('archive_export_set')) ? eval($sPlugin) : false);    
        
        return 
$this;
    }
    
    
/**
     * Based on the supported archives allowed with the set() method this returns all of them
     * but based on what the server can actually support as well.
     *
     * @return array List of all the allowed archive.
     */
    
public function getSupported()
    {
        return 
$this->_aArchives;
    }
    
    
/**
     * Method used to compress data and then send it to the user to download on the spot.
     *
     * @param string $sName Name of the archive
     * @param string $sExt File extension of the archive (zip, tar.gz, xml)
     * @param string $sFolder Folder to compress. Must be located within the "file/cache/" folder.
     * @return bool Only returns false if we were unable to compress the data
     */    
    
public function download($sName$sExt$sFolder$iServerId 0)  
    {        
        if (!(
$sNewFile Phpfox::getLib('phpfox.archive'$sExt)->compress($sName$sFolder)))
        {
            return 
false;
        }                

        if (
Phpfox::getParam('core.allow_cdn'))
        {
            
Phpfox::getLib('cdn')->put($sNewFile);
        }
            
        if (
is_dir(PHPFOX_DIR_CACHE $sFolder PHPFOX_DS))
        {             
            
Phpfox::getLib('file')->delete_directory(PHPFOX_DIR_CACHE $sFolder PHPFOX_DS);
        }    
        
        ((
$sPlugin Phpfox_Plugin::get('archive_export_download')) ? eval($sPlugin) : false);
        
        
// Phpfox::getlib('phpfox.file')->forceDownload($sNewFile, $sName . '.' . $sExt);        
        
Phpfox::getlib('phpfox.file')->forceDownload($sNewFile$sName '.' $sExt''''$iServerId);  
    }
}

?>
Онлайн: 0
Реклама