基本的に私はJoomla JArchive::create()
関数を使って相対パスからディレクトリを圧縮しようとしています。これまでのところ、私はディレクトリを圧縮することができますが、絶対パス全体を圧縮します。JArchive :: create for Joomla 2.5?
私は、以下のように絶対パスを圧縮することであることを使用していますコード:
$zipFilesArray = array();
$new_component_path = JPATH_SITE.'/'.'modules'.'/'.'mod_module_gen'.'/'.'package'.'/'.$new_folder_name;
$dirs = JFolder::folders($new_component_path, '.', true, true);
array_push($dirs, $new_component_path);
foreach ($dirs as $dir) {
$files = JFolder::files($dir, '.', false, true);
foreach ($files as $file) {
$data = JFile::read($file);
$zipFilesArray[] = array('name' => str_replace($new_component_path.DS, '', $file), 'data' => $data);
}
}
$zip = JArchive::getAdapter('zip');
$zip->create($new_component_path.'/'.$new_folder_name.'.zip', $zipFilesArray);
私は、私はJURI::root
構造に変更してみましたが、その後提供していますJPATH_SITE
構造を使用してとは何かを持っていると思います有効なパスではないというエラーです。
私は誰も私が提供しているコードに基づいてJoomlaで相対パスを圧縮する方法を教えてくれました。これは非常に感謝しています。
相対パスを使用する特別な理由はありますか? – Anand
@Anand:はい、絶対パスを使用すると、実際には絶対パス全体がzipされるので、public_htmlフォルダから開始します。 – Lodder
私は$ zipFilesArrayは、ファイル名だけでなく、フルパスのファイルを含む配列であるべきだと思います。 $ zipFilesArrayのデータも必要ありません – Anand