/** * gzExtract * * @param string $c * @param string $name * @param array $chmod * @param bool $overwrite * @return string */ public function gzExtract($c = '', $name = '', $chmod = array(), $overwrite = false) { $this->createDir($name, $chmod[1]); $tmp = Config::get('Gmanager', 'mode') == 'FTP' ? $this->ftpArchiveStart($c) : IOWrapper::set($c); $info = $this->getGzInfo($tmp); $data = null; if ($overwrite || !self::$_instance->file_exists($name . '/' . $info['name'])) { if (!self::$_instance->file_put_contents($name . '/' . $info['name'], $this->getGzContent($tmp))) { $data = Helper_View::message(Language::get('extract_file_false') . '<br/>' . Errors::get(), Helper_View::MESSAGE_ERROR_EMAIL); } } else { $data = Helper_View::message(Language::get('overwrite_false') . ' (' . htmlspecialchars($name . '/' . $info['name'], ENT_NOQUOTES) . ')', Helper_View::MESSAGE_ERROR); } if (Config::get('Gmanager', 'mode') == 'FTP') { $this->ftpArchiveEnd(); } if ($data) { return $data; } if (self::$_instance->is_file($name . '/' . $info['name'])) { if ($chmod[0]) { $this->rechmod($name . '/' . $info['name'], $chmod[0]); } return Helper_View::message(Language::get('extract_file_true'), Helper_View::MESSAGE_SUCCESS); } else { return Helper_View::message(Language::get('extract_file_false'), Helper_View::MESSAGE_ERROR_EMAIL); } }