public function downloadPackage() { $this->load->language('tool/package_installer'); if (!isset($this->session->data['package_info'])) { $this->error = $this->language->get('error_package_info_not_exists'); return false; } if (!is_writable($this->session->data['package_info']['tmp_dir'])) { $this->error = $this->language->get('error_dir_permission') . $this->session->data['package_info']['tmp_dir']; return false; } if ($this->request->get['start'] == 1) { $pmanager = new APackageManager(); $result = $pmanager->getRemoteFile($this->session->data['package_info']['package_url'], true, $this->session->data['package_info']['tmp_dir'] . $this->session->data['package_info']['package_name']); if (!$result) { $percents = $pmanager->error; } else { $percents = 100; } } elseif (isset($this->session->data['curl_handler'])) { return curl_getinfo($this->session->data['curl_handler'], CURLINFO_SIZE_DOWNLOAD); } else { $percents = floor(filesize($this->session->data['package_info']['tmp_dir'] . $this->session->data['package_info']['package_name']) * 100 / $this->session->data['package_info']['package_size']); } return $percents; }
private function _clean_temp_dir() { $temp_dir = $this->_get_temp_dir(); $files = glob($temp_dir . '*'); if ($files) { $pmanager = new APackageManager(); foreach ($files as $file) { if (is_dir($file)) { $pmanager->removeDir($file); } else { unlink($file); } } } }
/** * @param string $extension_txt_id * @return bool */ public function delete($extension_txt_id) { if (!trim($extension_txt_id)) { $this->log->write('Error! Abantecart tried to delete by empty extension_txt_id'); return false; } $info = $this->extensions->getExtensionInfo($extension_txt_id); $install_upgrade_history = new ADataset('install_upgrade_history', 'admin'); $install_upgrade_history->addRows(array('date_added' => date("Y-m-d H:i:s", time()), 'name' => $extension_txt_id, 'version' => $info['version'], 'backup_file' => '', 'backup_date' => '', 'type' => 'delete', 'user' => $this->user->getUsername())); $this->db->query("DELETE FROM " . $this->db->table("extensions") . " WHERE `type` = '" . $info['type'] . "' AND `key` = '" . $this->db->escape($extension_txt_id) . "'"); $this->deleteDependant($extension_txt_id); $this->session->data['package_info']['ftp'] = false; $pmanager = new APackageManager(); $result = $pmanager->removeDir(DIR_EXT . $extension_txt_id); if (!$result) { $message = "Error: Can't to delete file or directory: '" . DIR_EXT . $extension_txt_id . "'. No file permissions, change permissions to 777 with your FTP access"; $this->session->data['error'] = $message; } // refresh data about updates $this->load->model('tool/updater'); $this->model_tool_updater->check4updates(); return true; }