function generateArchive($themeName, $userThemeName = '', $includeThemler = true) { register_shutdown_function('fatalErrorShutdownHandler'); $themeDir = FilesHelper::normalizePath(getThemeDir($themeName)); if (!file_exists($themeDir)) { die('Error : No Theme Folder'); } $userThemeName = $userThemeName ? $userThemeName : $themeName; $uniqid = uniqid(); $base_upload_dir = get_base_upload_dir() . '/' . $uniqid; $user_template_dir = $base_upload_dir . '/' . $userThemeName; FilesHelper::copyRecursive($themeDir, $user_template_dir); if (!$includeThemler) { $dirs = array('export', 'project'); clearDirs($user_template_dir, $dirs); } $previewThemeDir = FilesHelper::normalizePath(getThemeDir($themeName . _PREVIEW_SUFFIX_)); $archiveName = 'theme_' . uniqid(time()) . '.zip'; $archiveFile = $base_upload_dir . '/' . $archiveName; $archive = new PclZip($archiveFile); add_version_folders($archive, $base_upload_dir, $user_template_dir, $previewThemeDir, $userThemeName, $includeThemler); add_files_to_archive_root($archive, $base_upload_dir, $user_template_dir, $previewThemeDir, $userThemeName); // Temporary fix to support Prestashop Cloud Install deleteFromArchive($archive, 'modules/designer/override/controllers/admin/AdminLoginController.php'); if (is_readable($archiveFile)) { $archiveContent = array('ext' => 'zip', 'content' => base64_encode(FilesHelper::readFile($archiveFile))); FilesHelper::removeDir($base_upload_dir, true); return $archiveContent; } die('Archive file: ' . $archiveFile . ' is not readable'); }
function getThemeArchive($themeName, $userThemeName, $includeThemler) { $themeDir = FilesHelper::normalizePath(getThemeDir($themeName)); if (!file_exists($themeDir)) { die('Error : No Theme Folder'); } $userThemeName = $userThemeName ? $userThemeName : $themeName; $base_upload_dir = get_base_upload_dir(); $user_template_dir = $base_upload_dir . '/' . $userThemeName; FilesHelper::copyRecursive($themeDir, $user_template_dir); if (!$includeThemler) { $dirs = array('export', 'project'); clearDirs($user_template_dir, $dirs); } $previewThemeDir = FilesHelper::normalizePath(getThemeDir($themeName . _PREVIEW_SUFFIX_)); $archive_name = 'theme_' . uniqid(time()) . '.zip'; $archive_file = $base_upload_dir . '/' . $archive_name; $archive = new PclZip($archive_file); add_version_folders($archive, $base_upload_dir, $user_template_dir, $previewThemeDir, $userThemeName, $includeThemler); add_files_to_archive_root($archive, $base_upload_dir, $user_template_dir, $previewThemeDir, $userThemeName); // Temporary fix to support Prestashop Cloud Install deleteFromArchive($archive, 'modules/designer/override/controllers/admin/AdminLoginController.php'); FilesHelper::removeDir($user_template_dir, true); return $archive_file; }