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;
 }