function _proGeneral($gr = 'mod', $ext_name) { $folder = 'exts_dowload_tmp'; $jversion = null; if (!file_exists($folder)) { mkdir($folder, 0777); } if (!defined('_JEXEC')) { define('_JEXEC', 1); } if (!defined('JPATH_PLATFORM')) { define('JPATH_PLATFORM', __DIR__); } if (file_exists('libraries/cms/version/version.php')) { if (!class_exists('JVersion')) { require_once dirname(__FILE__) . '/libraries/cms/version/version.php'; } $version = new JVersion(); $jversion = $version->RELEASE; } $file_name = $ext_name; switch ($gr) { case 'mod': $xml = simplexml_load_file('modules/' . $file_name . '/' . $file_name . '.xml'); $_file_name = _getVersion($file_name, $jversion, $xml); $file_path = $folder . '/' . $_file_name . '.zip'; $zip = new ZipArchive(); if ($zip->open($file_path, ZIPARCHIVE::CREATE) === true) { if (!file_exists($file_path)) { addAll("modules/" . $file_name . "/", "", $zip); } $zip->close(); } break; case 'pls': $path = 'plugins/system/'; $prefix = '.plg_system_'; case 'plc': if ($gr == 'plc') { $path = 'plugins/content/'; $prefix = '.plg_content_'; } case 'tmp': if ($gr == 'tmp') { $path = 'templates/'; $prefix = '.tpl_'; $folder_plc = $path . $file_name; if ($file_name == 'system') { echo 'Can not download this file'; exit; } $xml = simplexml_load_file($folder_plc . '/templateDetails.xml'); } else { $folder_plc = $path . $file_name; $xml = simplexml_load_file($folder_plc . '/' . $file_name . '.xml'); } $_file_name = _getVersion($file_name, $jversion, $xml); $lag = $xml->languages->language['tag']; $folder_lag = $path . $file_name . '/language'; if ($lag != null && !file_exists($folder_lag)) { if ($gr == 'tmp') { $srcfile = 'language/' . $lag . '/' . $lag . $prefix . $file_name . '.ini'; $srcfile1 = 'language/' . $lag . '/' . $lag . $prefix . $file_name . '.sys.ini'; } else { $srcfile = 'administrator/language/' . $lag . '/' . $lag . $prefix . $file_name . '.ini'; $srcfile1 = 'administrator/language/' . $lag . '/' . $lag . $prefix . $file_name . '.sys.ini'; } $src_index = $folder_plc . '/index.html'; $dstfile = $folder_lag . '/' . $lag . '/' . $lag . $prefix . $file_name . '.ini'; $dstfile1 = $folder_lag . '/' . $lag . '/' . $lag . $prefix . $file_name . '.sys.ini'; $dh = opendir($folder_plc); while (($file = readdir($dh)) !== false) { if ($file !== "." && $file !== "..") { if (!file_exists($folder_lag)) { mkdir($folder_lag, 0777); mkdir($folder_lag . '/' . $lag, 0777); copy($src_index, $folder_lag . '/index.html'); copy($src_index, $folder_lag . '/' . $lag . '/index.html'); copy($srcfile, $dstfile); copy($srcfile1, $dstfile1); } } } } $file_path = $folder . '/' . $_file_name . '.zip'; $zip = new ZipArchive(); if ($zip->open($file_path, ZIPARCHIVE::CREATE) === true) { if (!file_exists($file_path)) { addAll($path . $file_name . "/", "", $zip); } $zip->close(); } break; default: } }
public function addAll(ZendX_Util_Collection_Interface $c) { return $this->list - addAll($c); }