Exemple #1
0
 /**
  * Create ZIP archive.
  *
  * @param   array    $files  An array of files to put in archive.
  * @param   boolean  $save   Whether to save zip data to file or not?
  * @param   string   $name   Name with path to store archive file.
  *
  * @return  mixed  Zip data if $save is FALSE, or boolean value if $save is TRUE
  */
 public static function createZip($files, $save = false, $name = '')
 {
     if (is_array($files) and count($files)) {
         // Initialize variables
         $zip = new zipfile();
         $root = str_replace('\\', '/', JPATH_ROOT);
         foreach ($files as $file) {
             // Add file to zip archive
             if (is_array($file)) {
                 foreach ($file as $k => $v) {
                     $zip->create_file($v, $k);
                 }
             } elseif (is_string($file) and is_readable($file)) {
                 // Initialize file path
                 $file = str_replace('\\', '/', $file);
                 $path = str_replace($root, '', $file);
                 $zip->create_file(JFile::read($file), $path);
             }
         }
         // Save zip archive to file system
         if ($save) {
             if (!JFolder::create($dest = dirname($name))) {
                 throw new Exception(JText::sprintf('JSN_EXTFW_GENERAL_FOLDER_NOT_EXISTS', $dest));
             }
             if (!JFile::write($name, $zip->zipped_file())) {
                 throw new Exception(JText::sprintf('JSN_EXTFW_GENERAL_CANNOT_WRITE_FILE', $name));
             }
             return true;
         } else {
             return $zip->zipped_file();
         }
     }
     return false;
 }
Exemple #2
0
     $stylee = "admin_repair";
     break;
     // We, I mean developrts and support team anywhere, need sometime
     // some inforamtion about the status of Kleeja .. this will give
     // a zip file contain those data ..
 // We, I mean developrts and support team anywhere, need sometime
 // some inforamtion about the status of Kleeja .. this will give
 // a zip file contain those data ..
 case 'status_file':
     if (isset($_GET['_ajax_'])) {
         exit('Ajax is forbidden here !');
     }
     include PATH . 'includes/plugins.php';
     $zip = new zipfile();
     #kleeja version
     $zip->create_file(KLEEJA_VERSION, 'kleeja_version.txt');
     #grab configs
     $d_config = $config;
     unset($d_config['h_key'], $d_config['ftp_info']);
     $zip->create_file(var_export($d_config, true), 'config_vars.txt');
     unset($d_config);
     #php info
     ob_start();
     @phpinfo();
     $phpinfo = ob_get_contents();
     ob_end_clean();
     $zip->create_file($phpinfo, 'phpinfo.html');
     unset($phpinfo);
     #config file data
     $config_file_data = file_get_contents(PATH . 'config.php');
     $cvars = array('dbuser', 'dbpass', 'dbname', 'script_user', 'script_pass', 'script_db');
 function push($plg_name)
 {
     $z = new zipfile();
     foreach ($this->files as $filepath => $content) {
         $z->create_file($content, str_replace(PATH, '', $filepath));
     }
     $ff = md5($plg_name);
     //save file to cache and return the cached file name
     $c = $z->zipped_file();
     $fn = @fopen(PATH . 'cache/changes_of_' . $ff . '.zip', 'w');
     fwrite($fn, $c);
     fclose($fn);
     return $ff;
 }
Exemple #4
0
function dashboard_backup()
{
    $name = '';
    require_once SERVDIR . '/core/zip.class.php';
    if (request_type('POST')) {
        cn_dsi_check();
        $name = trim(preg_replace('/[^a-z0_9_]/i', '', REQ('backup_name')));
        $backup_sysonly = REQ('backup_sysonly');
        if (!$name) {
            cn_throw_message('Enter correct backup name', 'e');
        } else {
            // Do compress files
            $zip = new zipfile();
            if (!$backup_sysonly) {
                $zip->create_dir('news/');
                $zip->create_dir('users/');
                // Compress news
                $news = scan_dir(cn_path_construct(SERVDIR, 'cdata', 'news'));
                foreach ($news as $file) {
                    $data = join('', file(cn_path_construct(SERVDIR, 'cdata', 'news') . $file));
                    $zip->create_file($data, 'news' . DIRECTORY_SEPARATOR . $file);
                }
                // Compress users
                $news = scan_dir(cn_path_construct(SERVDIR, 'cdata', 'users'));
                foreach ($news as $file) {
                    $data = join('', file(cn_path_construct(SERVDIR, 'cdata', 'users') . $file));
                    $zip->create_file($data, 'news' . DIRECTORY_SEPARATOR . $file);
                }
                $files = array('conf.php', 'users.txt');
            } else {
                $files = array('conf.php');
            }
            // Append files
            foreach ($files as $file) {
                $data = join('', file(cn_path_construct(SERVDIR, 'cdata') . $file));
                $zip->create_file($data, $file);
            }
            // write compressed data
            $wb = fopen(cn_path_construct(SERVDIR, 'cdata', 'backup') . $name . '.zip', 'w+');
            fwrite($wb, $zip->zipped_file());
            fclose($wb);
            // backup created
            cn_throw_message('Backup sucessfull created');
            unset($zip);
            $name = '';
        }
    } elseif ($unpack_file = REQ('unpack', 'GET')) {
        cn_dsi_check();
        if (file_exists($cf = cn_path_construct(SERVDIR, 'cdata', 'backup') . $unpack_file . 'zip')) {
            $zip = new zipfile();
            $files = $zip->read_zip(cn_path_construct(SERVDIR, 'cdata', 'backup') . $unpack_file . 'zip');
            unset($zip);
            // replace files from zip-archive
            foreach ($files as $fdata) {
                $file = $fdata['dir'] . DIRECTORY_SEPARATOR . $fdata['name'];
                $w = fopen(cn_path_construct(SERVDIR, 'cdata') . $file, 'w+');
                fwrite($w, $fdata['data']);
                fclose($w);
            }
            unlink($cf);
            cn_throw_message('File decompressed, backup removed');
        } else {
            cn_throw_message('File [' . cn_htmlspecialchars($unpack_file) . '] not exists', 'e');
        }
    }
    $archives = array();
    $list = scan_dir(cn_path_construct(SERVDIR, 'cdata', 'backup'), '\\.zip');
    foreach ($list as $d) {
        $file = cn_path_construct(SERVDIR, 'cdata', 'backup') . $d;
        $archives[] = array('name' => str_replace('.zip', '', $d), 'size' => filesize($file), 'date' => date('Y-m-d H:i:s', filemtime($file)));
    }
    cn_assign('archives, name', $archives, $name);
    echoheader('-@dashboard/style.css', 'Backups');
    echo exec_tpl('dashboard/backups');
    echofooter();
}