Fondamentalement, j'essaie de compresser un répertoire à partir d'un chemin relatif en utilisant la fonction Joomla JArchive::create()
. Jusqu'à présent, je peux compresser un répertoire, mais il zippe tout le chemin absolu.JArchive :: créer pour Joomla 2.5?
Le code J'utilise que zip le chemin absolu est comme indiqué ci-dessous:
$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);
Je pense est a quelque chose à voir avec l'aide de la structure JPATH_SITE
que j'ai essayé de changer la structure JURI::root
mais fournit alors une erreur indiquant que ce n'est pas un chemin valide.
Quelqu'un pourrait me dire comment zip chemin relatif dans Joomla basé sur le code que j'ai fourni alors ce serait très apprécié.
Y a-t-il une raison spécifique d'utiliser le chemin relatif? – Anand
@Anand: oui car lorsque j'utilise un chemin absolu, il zippe tout le chemin absolu, à partir du dossier public_html. – Lodder
Je pense que $ zipFilesArray devrait être le tableau contenant les fichiers avec le chemin complet, pas seulement le nom du fichier. Les données ne sont pas non plus nécessaires dans $ zipFilesArray – Anand