JArchive::create()
基本的に、Joomla関数を使用して相対パスからディレクトリを圧縮しようとしています。これまでのところ、ディレクトリを圧縮できますが、絶対パス全体を圧縮します。
そのzipを使用しているコードの絶対パスは次のとおりです。
$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);
JPATH_SITE
構造に変更しようとした構造の使用に関係があると思いますがJURI::root
、有効なパスではないというエラーが表示されます。
私が提供したコードに基づいて、Joomlaで相対パスを圧縮する方法を誰でも教えてくれます。これは大歓迎です。