Zasadniczo próbuję skompresować katalog ze ścieżki względnej za pomocą funkcji Joomla JArchive::create()
. Do tej pory mogę spakować katalog, ale zamienia on całą bezwzględną ścieżkę.JArchive :: create dla Joomla 2.5?
Kod używam tego zip bezwzględna ścieżka jest tak jak pokazano poniżej:
$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);
myślę to ma coś wspólnego z wykorzystaniem struktury JPATH_SITE
które próbowałem zmieniającą się strukturą JURI::root
ale zapewnia błąd informujący, że nie jest to poprawna ścieżka.
Każdy może mi powiedzieć, jak zip względną ścieżkę w Joomla na podstawie kodu podałem, to byłoby bardzo cenne.
Czy istnieje jakiś szczególny powód stosowania względnej ścieżki? – Anand
@Anand: tak, ponieważ kiedy używam bezwzględnej ścieżki, faktycznie zamienia ona całą bezwzględną ścieżkę, zaczynając od folderu public_html. – Lodder
Myślę, że $ zipFilesArray powinna być tablicą zawierającą pliki z pełną ścieżką, a nie tylko nazwą pliku. Również dane nie są wymagane w $ zipFilesArray – Anand