मूल रूप से मैं जूमला JArchive::create()
फ़ंक्शन का उपयोग करके किसी सापेक्ष पथ से निर्देशिका को संपीड़ित करने का प्रयास कर रहा हूं। अब तक मैं एक निर्देशिका ज़िप कर सकता हूं लेकिन यह पूरे पूर्ण पथ को ज़िपित करता है।JArchive :: जूमला 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);
मुझे लगता है कि है JPATH_SITE
संरचना JURI::root
संरचना करने के लिए बदल रहा है जो मैं कोशिश की है का उपयोग कर के साथ कुछ है, लेकिन उसके बाद प्रदान करता है एक त्रुटि यह कह रही है कि यह वैध पथ नहीं है।
कोई भी मुझे बता सकता है कि मैंने जो कोड प्रदान किया है उसके आधार पर जूमला में सापेक्ष पथ को कैसे ज़िपित किया जाए, तो इसकी सराहना की जाएगी।
क्या सापेक्ष पथ का उपयोग करने के लिए कोई विशिष्ट कारण है? – Anand
@Anand: हाँ क्योंकि जब मैं एक पूर्ण पथ का उपयोग करता हूं, तो यह वास्तव में public_html फ़ोल्डर से शुरू होने वाले पूरे पूर्ण पथ को ज़िप करता है। – Lodder
मुझे लगता है कि $ zipFilesArray सरणी होना चाहिए जिसमें पूर्ण पथ वाले फाइलें हों, न केवल फ़ाइल का नाम। $ zipFilesArray – Anand