From b36a72add8563466d5ee742fb11ad9a5476de265 Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Thu, 25 Oct 2012 06:08:37 -0400
Subject: [PATCH] Fixed: changed all $this->app to $app and $this->db to $app->db and made $app global in functions

---
 server/lib/classes/aps_base.inc.php             |    6 -
 interface/lib/classes/aps_guicontroller.inc.php |  130 ++++++++++++---------
 interface/lib/classes/aps_crawler.inc.php       |   64 +++++----
 interface/lib/classes/aps_base.inc.php          |    6 -
 server/lib/classes/aps_installer.inc.php        |  109 ++++++++++--------
 5 files changed, 168 insertions(+), 147 deletions(-)

diff --git a/interface/lib/classes/aps_base.inc.php b/interface/lib/classes/aps_base.inc.php
index 9822cae..b8f6ad9 100644
--- a/interface/lib/classes/aps_base.inc.php
+++ b/interface/lib/classes/aps_base.inc.php
@@ -43,9 +43,6 @@
 
 class ApsBase
 {
-    protected $app = null;
-    protected $db = null;
-    
     protected $log_prefix = '';
     protected $fetch_url = '';
     protected $aps_version = '';
@@ -63,9 +60,6 @@
      */
     public function __construct($app, $log_prefix = 'APS: ', $interface_mode = false)
     {
-        $this->db = $app->db;
-        $this->app = $app;
-        
         $this->log_prefix = $log_prefix;
         $this->interface_mode = $interface_mode;
         $this->fetch_url = 'apscatalog.com';
diff --git a/interface/lib/classes/aps_crawler.inc.php b/interface/lib/classes/aps_crawler.inc.php
index 25a700f..ca3402e 100644
--- a/interface/lib/classes/aps_crawler.inc.php
+++ b/interface/lib/classes/aps_crawler.inc.php
@@ -54,6 +54,8 @@
      */
     private function checkRequirements()
     {
+        global $app;
+        
         try
         {
             // Check if allow_url_fopen is enabled
@@ -77,7 +79,7 @@
         }
         catch(Exception $e)
         {
-            $this->app->log($this->log_prefix.'Aborting execution because '.$e->getMessage(), LOGLEVEL_ERROR);
+            $app->log($this->log_prefix.'Aborting execution because '.$e->getMessage(), LOGLEVEL_ERROR);
             return false;
         }
     }
@@ -213,6 +215,8 @@
      */    
     public function startCrawler() 
     {
+        global $app;
+        
         try
         {
             // Make sure the requirements are given so that this script can execute
@@ -220,7 +224,7 @@
             if(!$req_ret) return false;
             
             // Execute the open task and first fetch all vendors (APS catalog API 1.1, p. 12)
-            $this->app->log($this->log_prefix.'Fetching data from '.$this->fetch_url);
+            $app->log($this->log_prefix.'Fetching data from '.$this->fetch_url);
 
             $vendor_page = $this->fetchPage('/all-app/'); //$vendor_page = $this->fetchPage('/'.$this->aps_version.'/');
             preg_match_all("/\<a href=\"(.+)\/\" class=\"vendor\"/i", $vendor_page, $matches);
@@ -242,7 +246,7 @@
             // Get all known apps from the database and the highest known version
             // Note: A dirty hack is used for numerical sorting of the VARCHAR field Version: +0 -> cast
             // A longer but typesafe way would be: ORDER BY CAST(REPLACE(Version, '.', '') AS UNSIGNED) DESC
-            $existing_apps = $this->db->queryAllRecords("SELECT * FROM (
+            $existing_apps = $app->db->queryAllRecords("SELECT * FROM (
                 SELECT name AS Name, CONCAT(version, '-', CAST(`release` AS CHAR)) AS CurrentVersion 
                 FROM aps_packages ORDER BY REPLACE(version, '.', '')+0 DESC, `release` DESC
                 ) as Versions GROUP BY name");
@@ -325,14 +329,14 @@
                                     if(file_exists($old_folder)) $this->removeDirectory($old_folder);
                                     
 									/*
-                                    $this->db->query("UPDATE aps_packages SET package_status = '".PACKAGE_OUTDATED."' WHERE name = '".
-                                        $this->db->quote($app_name)."' AND CONCAT(version, '-', CAST(`release` AS CHAR)) = '".
-                                        $this->db->quote($ex_ver)."';");
+                                    $app->db->query("UPDATE aps_packages SET package_status = '".PACKAGE_OUTDATED."' WHERE name = '".
+                                        $app->db->quote($app_name)."' AND CONCAT(version, '-', CAST(`release` AS CHAR)) = '".
+                                        $app->db->quote($ex_ver)."';");
 									*/
-									$tmp = $this->db->queryOneRecord("SELECT id FROM aps_packages WHERE name = '".
-                                        $this->db->quote($app_name)."' AND CONCAT(version, '-', CAST(`release` AS CHAR)) = '".
-                                        $this->db->quote($ex_ver)."';");
-									$this->db->datalogUpdate('aps_packages', "package_status = ".PACKAGE_OUTDATED, 'id', $tmp['id']);
+									$tmp = $app->db->queryOneRecord("SELECT id FROM aps_packages WHERE name = '".
+                                        $app->db->quote($app_name)."' AND CONCAT(version, '-', CAST(`release` AS CHAR)) = '".
+                                        $app->db->quote($ex_ver)."';");
+									$app->db->datalogUpdate('aps_packages', "package_status = ".PACKAGE_OUTDATED, 'id', $tmp['id']);
 									unset($tmp);
                                 }
                                 
@@ -446,19 +450,19 @@
                     if($apps_to_dl_chunks[$i][$j]['filesize'] != 0 &&
                        $apps_to_dl_chunks[$i][$j]['filesize'] != filesize($apps_to_dl_chunks[$i][$j]['localtarget']))
                     {
-                            $this->app->log($this->log_prefix.' The filesize of the package "'.
+                            $app->log($this->log_prefix.' The filesize of the package "'.
                                 $apps_to_dl_chunks[$i][$j]['name'].'" is wrong. Download failure?', LOGLEVEL_WARN);
                     }
                 }
             }
             
-            $this->app->log($this->log_prefix.'Processed '.$apps_in_repo.
+            $app->log($this->log_prefix.'Processed '.$apps_in_repo.
                 ' apps from the repo. Downloaded '.$apps_updated.
                 ' updates, '.$apps_downloaded.' new apps');
         }
         catch(Exception $e)
         {
-            $this->app->log($this->log_prefix.$e->getMessage(), LOGLEVEL_ERROR);
+            $app->log($this->log_prefix.$e->getMessage(), LOGLEVEL_ERROR);
             return false;
         }
     }
@@ -472,6 +476,8 @@
      */
     public function parseFolderToDB()
     {
+        global $app;
+        
         try
         {
             // This method must be used in server mode
@@ -491,14 +497,14 @@
             
             // Get registered packages and mark non-existant packages with an error code to omit the install
             $existing_packages = array();
-            $path_query = $this->db->queryAllRecords('SELECT path AS Path FROM aps_packages;');
+            $path_query = $app->db->queryAllRecords('SELECT path AS Path FROM aps_packages;');
             foreach($path_query as $path) $existing_packages[] = $path['Path']; 
             $diff = array_diff($existing_packages, $pkg_list);
             foreach($diff as $todelete) {
-                /*$this->db->query("UPDATE aps_packages SET package_status = '".PACKAGE_ERROR_NOMETA."' 
-                    WHERE path = '".$this->db->quote($todelete)."';");*/
-				$tmp = $this->db->queryOneRecord("SELECT id FROM aps_packages WHERE path = '".$this->db->quote($todelete)."';");
-				$this->db->datalogUpdate('aps_packages', "package_status = ".PACKAGE_ERROR_NOMETA, 'id', $tmp['id']);
+                /*$app->db->query("UPDATE aps_packages SET package_status = '".PACKAGE_ERROR_NOMETA."' 
+                    WHERE path = '".$app->db->quote($todelete)."';");*/
+				$tmp = $app->db->queryOneRecord("SELECT id FROM aps_packages WHERE path = '".$app->db->quote($todelete)."';");
+				$app->db->datalogUpdate('aps_packages', "package_status = ".PACKAGE_ERROR_NOMETA, 'id', $tmp['id']);
 				unset($tmp);
 			}
             
@@ -510,7 +516,7 @@
                 $metafile = $this->interface_pkg_dir.'/'.$pkg.'/APP-META.xml';
                 if(!file_exists($metafile)) 
                 {
-                    $this->app->log($this->log_prefix.'Cannot read metadata from '.$pkg, LOGLEVEL_ERROR);
+                    $app->log($this->log_prefix.'Cannot read metadata from '.$pkg, LOGLEVEL_ERROR);
                     continue;
                 }
         
@@ -527,25 +533,25 @@
                 $pkg_release = parent::getXPathValue($sxe, 'release');
                 
 				/*
-                $this->db->query("INSERT INTO `aps_packages` 
+                $app->db->query("INSERT INTO `aps_packages` 
                     (`path`, `name`, `category`, `version`, `release`, `package_status`) VALUES 
-                    ('".$this->db->quote($pkg)."', '".$this->db->quote($pkg_name)."',
-                    '".$this->db->quote($pkg_category)."', '".$this->db->quote($pkg_version)."',
-                    ".$this->db->quote($pkg_release).", ".PACKAGE_ENABLED.");");
+                    ('".$app->db->quote($pkg)."', '".$app->db->quote($pkg_name)."',
+                    '".$app->db->quote($pkg_category)."', '".$app->db->quote($pkg_version)."',
+                    ".$app->db->quote($pkg_release).", ".PACKAGE_ENABLED.");");
 				*/
 				
 				$insert_data = "(`path`, `name`, `category`, `version`, `release`, `package_url`, `package_status`) VALUES 
-                    ('".$this->db->quote($pkg)."', '".$this->db->quote($pkg_name)."',
-                    '".$this->db->quote($pkg_category)."', '".$this->db->quote($pkg_version)."',
-                    ".$this->db->quote($pkg_release).", '".$this->db->quote($this->app_download_url_list[$pkg])."', ".PACKAGE_ENABLED.");";
+                    ('".$app->db->quote($pkg)."', '".$app->db->quote($pkg_name)."',
+                    '".$app->db->quote($pkg_category)."', '".$app->db->quote($pkg_version)."',
+                    ".$app->db->quote($pkg_release).", '".$app->db->quote($this->app_download_url_list[$pkg])."', ".PACKAGE_ENABLED.");";
 				
-				$this->app->db->datalogInsert('aps_packages', $insert_data, 'id');
+				$app->db->datalogInsert('aps_packages', $insert_data, 'id');
             }
         }
         catch(Exception $e)
         {
-            $this->app->log($this->log_prefix.$e->getMessage(), LOGLEVEL_ERROR);
-			$this->app->error($e->getMessage());
+            $app->log($this->log_prefix.$e->getMessage(), LOGLEVEL_ERROR);
+			$app->error($e->getMessage());
             return false;
         }
     }
diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php
index 53c9ea3..d02237b 100644
--- a/interface/lib/classes/aps_guicontroller.inc.php
+++ b/interface/lib/classes/aps_guicontroller.inc.php
@@ -87,11 +87,12 @@
      */
     private function getCustomerIDFromDomain($domain)
     {
+        global $app;
         $customerid = 0;
         
-        $customerdata = $this->db->queryOneRecord("SELECT client_id FROM sys_group, web_domain
+        $customerdata = $app->db->queryOneRecord("SELECT client_id FROM sys_group, web_domain
             WHERE web_domain.sys_groupid = sys_group.groupid 
-            AND web_domain.domain = '".$this->db->quote($domain)."';");
+            AND web_domain.domain = '".$app->db->quote($domain)."';");
         if(!empty($customerdata)) $customerid = $customerdata['client_id'];
         
         return $customerid;
@@ -106,18 +107,19 @@
      */
     private function getInstanceDataForDatalog($instanceid)
     {
+        global $app;
         $webserver_id = '';
         
-        $websrv = $this->db->queryOneRecord("SELECT server_id FROM web_domain 
+        $websrv = $app->db->queryOneRecord("SELECT server_id FROM web_domain 
             WHERE domain = (SELECT value FROM aps_instances_settings 
-                WHERE name = 'main_domain' AND instance_id = ".$this->db->quote($instanceid).");");
+                WHERE name = 'main_domain' AND instance_id = ".$app->db->quote($instanceid).");");
 
         // If $websrv is empty, an error has occured. Domain no longer existing? Settings table damaged?
         // Anyhow, remove this instance record because it's not useful at all
         if(empty($websrv)) 
         {
-            $this->db->query("DELETE FROM aps_instances WHERE id = ".$this->db->quote($instanceid).";");
-            $this->db->query("DELETE FROM aps_instances_settings WHERE instance_id = ".$this->db->quote($instanceid).";");
+            $app->db->query("DELETE FROM aps_instances WHERE id = ".$app->db->quote($instanceid).";");
+            $app->db->query("DELETE FROM aps_instances_settings WHERE instance_id = ".$app->db->quote($instanceid).";");
         }
         else $webserver_id = $websrv['server_id'];
         
@@ -133,12 +135,14 @@
      */ 
     public function getNewestPackageID($id)
     {
+        global $app;
+        
         if(preg_match('/^[0-9]+$/', $id) != 1) return 0;
         
-        $result = $this->db->queryOneRecord("SELECT id, name, 
+        $result = $app->db->queryOneRecord("SELECT id, name, 
             CONCAT(version, '-', CAST(`release` AS CHAR)) AS current_version 
             FROM aps_packages 
-            WHERE name = (SELECT name FROM aps_packages WHERE id = ".$this->db->quote($id).")  
+            WHERE name = (SELECT name FROM aps_packages WHERE id = ".$app->db->quote($id).")  
             ORDER BY REPLACE(version, '.', '')+0 DESC, `release` DESC");
             
         if(!empty($result) && ($id != $result['id'])) return $result['id'];
@@ -155,13 +159,15 @@
      */
     public function isValidPackageID($id, $is_admin = false)
     {
+        global $app;
+        
          if(preg_match('/^[0-9]+$/', $id) != 1) return false;
          
          $sql_ext = (!$is_admin) ? 
             'package_status = '.PACKAGE_ENABLED.' AND' :  
             '(package_status = '.PACKAGE_ENABLED.' OR package_status = '.PACKAGE_LOCKED.') AND'; 
 
-         $result = $this->db->queryOneRecord("SELECT id FROM aps_packages WHERE ".$sql_ext." id = ".$this->db->quote($id).";");
+         $result = $app->db->queryOneRecord("SELECT id FROM aps_packages WHERE ".$sql_ext." id = ".$app->db->quote($id).";");
          if(!$result) return false;
          
          return true;
@@ -177,12 +183,14 @@
      */
     public function isValidInstanceID($id, $client_id, $is_admin = false)
     {
+        global $app;
+        
          if(preg_match('/^[0-9]+$/', $id) != 1) return false;
          
          // Only filter if not admin
-         $sql_ext = (!$is_admin) ? 'customer_id = '.$this->db->quote($client_id).' AND' : ''; 
+         $sql_ext = (!$is_admin) ? 'customer_id = '.$app->db->quote($client_id).' AND' : ''; 
 
-         $result = $this->db->queryOneRecord('SELECT id FROM aps_instances WHERE '.$sql_ext.' id = '.$this->db->quote($id).';');
+         $result = $app->db->queryOneRecord('SELECT id FROM aps_instances WHERE '.$sql_ext.' id = '.$app->db->quote($id).';');
          if(!$result) return false;
          
          return true;
@@ -202,15 +210,15 @@
 		$app->uses('tools_sites');
         
 		$webserver_id = 0;
-        $websrv = $this->db->queryOneRecord("SELECT * FROM web_domain WHERE domain = '".$this->db->quote($settings['main_domain'])."';");
+        $websrv = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain = '".$app->db->quote($settings['main_domain'])."';");
         if(!empty($websrv)) $webserver_id = $websrv['server_id'];
         $customerid = $this->getCustomerIDFromDomain($settings['main_domain']);
         
         if(empty($settings) || empty($webserver_id)) return false;
 		
 		//* Get server config of the web server
-		$this->app->uses("getconf");
-		$web_config = $this->app->getconf->get_server_config($app->functions->intval($websrv["server_id"]),'web');
+		$app->uses("getconf");
+		$web_config = $app->getconf->get_server_config($app->functions->intval($websrv["server_id"]),'web');
 			
 		//* Set mysql mode to php-fcgi and enable suexec in website on apache servers
 		if($web_config['server_type'] == 'apache') {
@@ -220,7 +228,7 @@
 		}
 		
 		//* Create the MySQL database for the application
-		$pkg = $this->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$this->db->quote($packageid).';');
+		$pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($packageid).';');
 		$metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml';
 		$sxe = $this->readInMetaFile($metafile);
 		
@@ -283,14 +291,14 @@
 		}
 		
 		//* Insert new package instance
-		$insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `customer_id`, `package_id`, `instance_status`) VALUES (".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', ".$this->db->quote($webserver_id).",".$this->db->quote($customerid).", ".$this->db->quote($packageid).", ".INSTANCE_PENDING.")";
+		$insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `customer_id`, `package_id`, `instance_status`) VALUES (".$websrv['sys_userid'].", ".$websrv['sys_groupid'].", 'riud', '".$websrv['sys_perm_group']."', '', ".$app->db->quote($webserver_id).",".$app->db->quote($customerid).", ".$app->db->quote($packageid).", ".INSTANCE_PENDING.")";
 		$InstanceID = $app->db->datalogInsert('aps_instances', $insert_data, 'id');
 		
 		//* Insert all package settings
 		if(is_array($settings)) {
 			foreach($settings as $key => $value) {
-				$insert_data = "(server_id, instance_id, name, value) VALUES (".$this->db->quote($webserver_id).",".$this->db->quote($InstanceID).", '".$this->db->quote($key)."', '".$this->db->quote($value)."')";
-				$this->db->datalogInsert('aps_instances_settings', $insert_data, 'id');
+				$insert_data = "(server_id, instance_id, name, value) VALUES (".$app->db->quote($webserver_id).",".$app->db->quote($InstanceID).", '".$app->db->quote($key)."', '".$app->db->quote($value)."')";
+				$app->db->datalogInsert('aps_instances_settings', $insert_data, 'id');
 			}
 		}
 		
@@ -308,23 +316,23 @@
     {
         global $app;
 		/*
-		$this->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_REMOVE." WHERE id = ".$instanceid.";");
+		$app->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_REMOVE." WHERE id = ".$instanceid.";");
         
         $webserver_id = $this->getInstanceDataForDatalog($instanceid);
         if($webserver_id == '') return;
         
         // Create a sys_datalog entry for deletion
         $datalog = array('Instance_id' => $instanceid, 'server_id' => $webserver_id);
-        $this->db->datalogSave('aps', 'DELETE', 'id', $instanceid, array(), $datalog);
+        $app->db->datalogSave('aps', 'DELETE', 'id', $instanceid, array(), $datalog);
 		*/
 		
 		$sql = "SELECT web_database.database_id as database_id, web_database.database_user_id as `database_user_id` FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.value =  aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$instanceid." LIMIT 0,1";
-		$tmp = $this->db->queryOneRecord($sql);
-		if($tmp['database_id'] > 0) $this->db->datalogDelete('web_database', 'database_id', $tmp['database_id']);
+		$tmp = $app->db->queryOneRecord($sql);
+		if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']);
 		
         $database_user = $tmp['database_user_id'];
-        $tmp = $this->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `database_user_id` = '" . $app->functions->intval($database_user) . "' OR `database_ro_user_id` = '" . $app->functions->intval($database_user) . "'");
-        if($tmp['cnt'] < 1) $this->db->datalogDelete('web_database_user', 'database_user_id', $database_user);
+        $tmp = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `database_user_id` = '" . $app->functions->intval($database_user) . "' OR `database_ro_user_id` = '" . $app->functions->intval($database_user) . "'");
+        if($tmp['cnt'] < 1) $app->db->datalogDelete('web_database_user', 'database_user_id', $database_user);
         
 		$app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_REMOVE, 'id', $instanceid);
 
@@ -338,22 +346,24 @@
      */
     public function reinstallInstance($instanceid)
     {
+        global $app;
+        
         /*
-		$this->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_INSTALL." WHERE id = ".$instanceid.";");
+		$app->db->query("UPDATE aps_instances SET instance_status = ".INSTANCE_INSTALL." WHERE id = ".$instanceid.";");
         
         $webserver_id = $this->getInstanceDataForDatalog($instanceid);
         if($webserver_id == '') return;
         
         // Create a sys_datalog entry for re-installation
         $datalog = array('instance_id' => $instanceid, 'server_id' => $webserver_id);
-        $this->db->datalogSave('aps', 'INSERT', 'id', $instanceid, array(), $datalog);
+        $app->db->datalogSave('aps', 'INSERT', 'id', $instanceid, array(), $datalog);
 		*/
 		
 		$sql = "SELECT web_database.database_id as database_id FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.value =  aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ".$instanceid." LIMIT 0,1";
-		$tmp = $this->db->queryOneRecord($sql);
-		if($tmp['database_id'] > 0) $this->db->datalogDelete('web_database', 'database_id', $tmp['database_id']);
+		$tmp = $app->db->queryOneRecord($sql);
+		if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']);
 		
-		$this->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_INSTALL, 'id', $instanceid);
+		$app->db->datalogUpdate('aps_instances', "instance_status = ".INSTANCE_INSTALL, 'id', $instanceid);
     }
 
     /**
@@ -364,7 +374,9 @@
      */
     public function getPackageSettings($id)    
     {
-        $pkg = $this->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$this->db->quote($id).';');
+        global $app;
+        
+        $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($id).';');
         
         // Load in meta file if existing and register its namespaces
         $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml';
@@ -460,10 +472,10 @@
         // Main domain (obligatory)
         if(isset($postinput['main_domain']))
         {
-            if(!in_array($postinput['main_domain'], $domains)) $error[] = $this->app->lng('error_main_domain');
+            if(!in_array($postinput['main_domain'], $domains)) $error[] = $app->lng('error_main_domain');
             else $input['main_domain'] = $postinput['main_domain'];
         }
-        else $error[] = $this->app->lng('error_main_domain'); 
+        else $error[] = $app->lng('error_main_domain'); 
         
         // Main location (not obligatory but must be supplied)
         if(isset($postinput['main_location']))
@@ -478,13 +490,13 @@
             $main_location = $this->secureLocation($main_location);
             // Only allow digits, words, / and -
             $main_location = preg_replace("/[^\d\w\/\-]/i", "", $main_location);
-            if($userinput && (strlen($main_location) == 0)) $temp_errstr = $this->app->lng('error_inv_main_location');
+            if($userinput && (strlen($main_location) == 0)) $temp_errstr = $app->lng('error_inv_main_location');
             
             // Find out document_root and make sure no apps are installed twice to one location
             if(in_array($postinput['main_domain'], $domains))
             {
-                $docroot = $this->db->queryOneRecord("SELECT document_root FROM web_domain 
-                    WHERE domain = '".$this->db->quote($postinput['main_domain'])."';");
+                $docroot = $app->db->queryOneRecord("SELECT document_root FROM web_domain 
+                    WHERE domain = '".$app->db->quote($postinput['main_domain'])."';");
                 $new_path = $docroot['document_root'];
                 if(substr($new_path, -1) != '/') $new_path .= '/';
                 $new_path .= $main_location;
@@ -496,16 +508,16 @@
                 // and get the corresponding document roots as well as the defined
                 // locations. If an existing doc_root + location matches with the
                 // new one -> error
-                $instance_domains = $this->db->queryAllRecords("SELECT instance_id, s.value AS domain 
+                $instance_domains = $app->db->queryAllRecords("SELECT instance_id, s.value AS domain 
                     FROM aps_instances AS i, aps_instances_settings AS s 
                     WHERE i.id = s.instance_id AND s.name = 'main_domain' 
-                        AND i.customer_id = '".$this->db->quote($customerid)."';");
+                        AND i.customer_id = '".$app->db->quote($customerid)."';");
                 for($i = 0; $i < count($instance_domains); $i++)
                 {
                     $used_path = '';
                     
-                    $doc_root = $this->db->queryOneRecord("SELECT document_root FROM web_domain 
-                        WHERE domain = '".$this->db->quote($instance_domains[$i]['domain'])."';");
+                    $doc_root = $app->db->queryOneRecord("SELECT document_root FROM web_domain 
+                        WHERE domain = '".$app->db->quote($instance_domains[$i]['domain'])."';");
 
                     // Probably the domain settings were changed later, so make sure the doc_root
                     // is not empty for further validation
@@ -514,34 +526,34 @@
                         $used_path = $docroot['document_root'];
                         if(substr($used_path, -1) != '/') $used_path .= '/';
                         
-                        $location_for_domain = $this->db->queryOneRecord("SELECT value 
+                        $location_for_domain = $app->db->queryOneRecord("SELECT value 
                             FROM aps_instances_settings WHERE name = 'main_location' 
-                            AND instance_id = '".$this->db->quote($instance_domains[$i]['instance_id'])."';");
+                            AND instance_id = '".$app->db->quote($instance_domains[$i]['instance_id'])."';");
                         
                         // The location might be empty but the DB return must not be false!
                         if($location_for_domain) $used_path .= $location_for_domain['value'];      
 
                         if($new_path == $used_path)
                         {
-                            $temp_errstr = $this->app->lng('error_used_location');
+                            $temp_errstr = $app->lng('error_used_location');
                             break;
                         }
                     }
                 }
             }
-            else $temp_errstr = $this->app->lng('error_main_domain');
+            else $temp_errstr = $app->lng('error_main_domain');
             
             if($temp_errstr == '') $input['main_location'] = htmlspecialchars($main_location);
             else $error[] = $temp_errstr;            
         }
-        else $error[] = $this->app->lng('error_no_main_location');
+        else $error[] = $app->lng('error_no_main_location');
         
         // License (the checkbox must be set)
         if(isset($pkg_details['License need agree']) 
         && $pkg_details['License need agree'] == 'true')
         {
             if(isset($postinput['license']) && $postinput['license'] == 'on') $input['license'] = 'true';
-            else $error[] = $this->app->lng('error_license_agreement');
+            else $error[] = $app->lng('error_license_agreement');
         } 
         
         // Database
@@ -550,12 +562,12 @@
         {
             if(isset($postinput['main_database_password']))
             {
-                if($postinput['main_database_password'] == '') $error[] = $this->app->lng('error_no_database_pw');
+                if($postinput['main_database_password'] == '') $error[] = $app->lng('error_no_database_pw');
                 else if(strlen($postinput['main_database_password']) > 8) 
                     $input['main_database_password'] = htmlspecialchars($postinput['main_database_password']);
-                else $error[] = $this->app->lng('error_short_database_pw');
+                else $error[] = $app->lng('error_short_database_pw');
             }
-            else $error[] = $this->app->lng('error_no_database_pw');
+            else $error[] = $app->lng('error_no_database_pw');
         }
         
         // Validate the package settings 
@@ -572,36 +584,36 @@
                 {
                     if($app->functions->intval($setting['SettingMinLength'], true) != 0 
                     && strlen($postinput[$setting_id]) < $app->functions->intval($setting['SettingMinLength'], true))
-                        $temp_errstr = sprintf($this->app->lng('error_short_value_for'), $setting['setting_name']);
+                        $temp_errstr = sprintf($app->lng('error_short_value_for'), $setting['setting_name']);
                         
                     if($app->functions->intval($setting['SettingMaxLength'], true) != 0 
                     && strlen($postinput[$setting_id]) > $app->functions->intval($setting['SettingMaxLength'], true))
-                        $temp_errstr = sprintf($this->app->lng('error_long_value_for'), $setting['setting_name']);
+                        $temp_errstr = sprintf($app->lng('error_long_value_for'), $setting['setting_name']);
 
                     if(isset($setting['SettingRegex'])
                     && !preg_match("/".$setting['SettingRegex']."/", $postinput[$setting_id]))
-                        $temp_errstr = sprintf($this->app->lng('error_inv_value_for'), $setting['setting_name']);
+                        $temp_errstr = sprintf($app->lng('error_inv_value_for'), $setting['setting_name']);
                 }
                 else if($setting['SettingType'] == 'email')
                 {
                     if(filter_var(strtolower($postinput[$setting_id]), FILTER_VALIDATE_EMAIL) === false)
-                        $temp_errstr = sprintf($this->app->lng('error_inv_email_for'), $setting['setting_name']);
+                        $temp_errstr = sprintf($app->lng('error_inv_email_for'), $setting['setting_name']);
                 }
                 else if($setting['SettingType'] == 'domain-name')
                 {
                     if(!preg_match("^(http|https)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*$", 
                         $postinput[$setting_id]))
-                    $temp_errstr = sprintf($this->app->lng('error_inv_domain_for'), $setting['setting_name']);    
+                    $temp_errstr = sprintf($app->lng('error_inv_domain_for'), $setting['setting_name']);    
                 }
                 else if($setting['SettingType'] == 'integer')
                 {
                     if(filter_var($postinput[$setting_id], FILTER_VALIDATE_INT) === false)
-                        $temp_errstr = sprintf($this->app->lng('error_inv_integer_for'), $setting['setting_name']);
+                        $temp_errstr = sprintf($app->lng('error_inv_integer_for'), $setting['setting_name']);
                 }
                 else if($setting['SettingType'] == 'float')
                 {
                     if(filter_var($postinput[$setting_id], FILTER_VALIDATE_FLOAT) === false)
-                        $temp_errstr = sprintf($this->app->lng('error_inv_float_for'), $setting['setting_name']);
+                        $temp_errstr = sprintf($app->lng('error_inv_float_for'), $setting['setting_name']);
                 }
                 else if($setting['SettingType'] == 'boolean')
                 {
@@ -618,13 +630,13 @@
                         if($setting['SettingChoices'][$i]['EnumID'] == $postinput[$setting_id])
                             $found = true;
                     }
-                    if(!$found) $temp_errstr = sprintf($this->app->lng('error_inv_value_for'), $setting['SettingName']);
+                    if(!$found) $temp_errstr = sprintf($app->lng('error_inv_value_for'), $setting['SettingName']);
                 }
                 
                 if($temp_errstr == '') $input[$setting_id] = $postinput[$setting_id];
                 else $error[] = $temp_errstr;
             }
-            else $error[] = sprintf($this->app->lng('error_no_value_for'), $setting['SettingName']);
+            else $error[] = sprintf($app->lng('error_no_value_for'), $setting['SettingName']);
         }
         
         $ret['input'] = $input;
@@ -641,7 +653,9 @@
      */
     public function getPackageDetails($id)
     {
-        $pkg = $this->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$this->db->quote($id).';');
+        global $app;
+        
+        $pkg = $app->db->queryOneRecord('SELECT * FROM aps_packages WHERE id = '.$app->db->quote($id).';');
         
         // Load in meta file if existing and register its namespaces
         $metafile = $this->interface_pkg_dir.'/'.$pkg['path'].'/APP-META.xml';
diff --git a/server/lib/classes/aps_base.inc.php b/server/lib/classes/aps_base.inc.php
index 9822cae..b8f6ad9 100644
--- a/server/lib/classes/aps_base.inc.php
+++ b/server/lib/classes/aps_base.inc.php
@@ -43,9 +43,6 @@
 
 class ApsBase
 {
-    protected $app = null;
-    protected $db = null;
-    
     protected $log_prefix = '';
     protected $fetch_url = '';
     protected $aps_version = '';
@@ -63,9 +60,6 @@
      */
     public function __construct($app, $log_prefix = 'APS: ', $interface_mode = false)
     {
-        $this->db = $app->db;
-        $this->app = $app;
-        
         $this->log_prefix = $log_prefix;
         $this->interface_mode = $interface_mode;
         $this->fetch_url = 'apscatalog.com';
diff --git a/server/lib/classes/aps_installer.inc.php b/server/lib/classes/aps_installer.inc.php
index 9c091b1..de1500c 100644
--- a/server/lib/classes/aps_installer.inc.php
+++ b/server/lib/classes/aps_installer.inc.php
@@ -63,6 +63,7 @@
      */
     private function checkRequirements()
     {
+        global $app;
         try
         {
             // Check if exec() is not disabled
@@ -76,7 +77,7 @@
         }
         catch(Exception $e)
         {
-            $this->app->log('Aborting execution because '.$e->getMessage());
+            $app->log('Aborting execution because '.$e->getMessage());
             return false;
         }
     }
@@ -242,20 +243,22 @@
      */
     private function prepareLocation($task)
     {
+        global $app;
+        
         // Get the domain name to use for the installation
         // Would be possible in one query too, but we use 2 for easier debugging
-        $main_domain = $this->app->db->queryOneRecord("SELECT value FROM aps_instances_settings  
-            WHERE name = 'main_domain' AND instance_id = '".$this->db->quote($task['instance_id'])."';");
+        $main_domain = $app->db->queryOneRecord("SELECT value FROM aps_instances_settings  
+            WHERE name = 'main_domain' AND instance_id = '".$app->db->quote($task['instance_id'])."';");
         $this->domain = $main_domain['value'];
         
         // Get the document root
-        $domain_res = $this->app->db->queryOneRecord("SELECT document_root FROM web_domain 
-            WHERE domain = '".$this->db->quote($this->domain)."';");
+        $domain_res = $app->db->queryOneRecord("SELECT document_root FROM web_domain 
+            WHERE domain = '".$app->db->quote($this->domain)."';");
         $this->document_root = $domain_res['document_root'];
         
         // Get the sub location
-        $location_res = $this->app->dbmaster->queryOneRecord("SELECT value FROM aps_instances_settings 
-            WHERE name = 'main_location' AND instance_id = '".$this->db->quote($task['instance_id'])."';");
+        $location_res = $app->dbmaster->queryOneRecord("SELECT value FROM aps_instances_settings 
+            WHERE name = 'main_location' AND instance_id = '".$app->db->quote($task['instance_id'])."';");
         $this->sublocation = $location_res['value'];
         
         // Make sure the document_root ends with /
@@ -285,6 +288,8 @@
      */
     private function prepareDatabase($task, $sxe)
     {
+        global $app;
+        
         $db_id = parent::getXPathValue($sxe, '//db:id');
         if(empty($db_id)) return; // No database needed
         
@@ -292,14 +297,14 @@
         // Set the database owner to the domain owner
         // ISPConfig identifies the owner by the sys_groupid (not sys_userid!)
         // so sys_userid can be set to any value
-        $perm = $this->app->db->queryOneRecord("SELECT sys_groupid, server_id FROM web_domain 
+        $perm = $app->db->queryOneRecord("SELECT sys_groupid, server_id FROM web_domain 
             WHERE domain = '".$this->domain."';");
         $task['sys_groupid'] = $perm['sys_groupid'];
         $serverid = $perm['server_id'];
                 
         // Get the database prefix and db user prefix 
-        $this->app->uses('getconf');
-        $global_config = $this->app->getconf->get_global_config('sites');
+        $app->uses('getconf');
+        $global_config = $app->getconf->get_global_config('sites');
         $dbname_prefix = str_replace('[CLIENTID]', '', $global_config['dbname_prefix']);
         $dbuser_prefix = str_replace('[CLIENTID]', '', $global_config['dbuser_prefix']);
         $this->dbhost = DB_HOST; // Taken from config.inc.php
@@ -307,47 +312,47 @@
         
         $this->newdb_name = $dbname_prefix.$task['CustomerID'].'aps'.$task['InstanceID'];
         $this->newdb_user = $dbuser_prefix.$task['CustomerID'].'aps'.$task['InstanceID'];
-        $dbpw_res = $this->app->dbmaster->queryOneRecord("SELECT Value FROM aps_instances_settings  
-            WHERE Name = 'main_database_password' AND InstanceID = '".$this->db->quote($task['InstanceID'])."';");
+        $dbpw_res = $app->dbmaster->queryOneRecord("SELECT Value FROM aps_instances_settings  
+            WHERE Name = 'main_database_password' AND InstanceID = '".$app->db->quote($task['InstanceID'])."';");
         $newdb_pw = $dbpw_res['Value'];
  
         // In any case delete an existing database (install and removal procedure)
-        $this->db->query('DROP DATABASE IF EXISTS `'.$this->db->quote($this->newdb_name).'`;');
+        $app->db->query('DROP DATABASE IF EXISTS `'.$app->db->quote($this->newdb_name).'`;');
         // Delete an already existing database with this name
-        $this->app->dbmaster->query("DELETE FROM web_database WHERE database_name = '".$this->db->quote($this->newdb_name)."';");
+        $app->dbmaster->query("DELETE FROM web_database WHERE database_name = '".$app->db->quote($this->newdb_name)."';");
         
         
         // Create the new database and assign it to a user
         if($this->handle_type == 'install')
         {
-            $this->db->query('CREATE DATABASE IF NOT EXISTS `'.$this->db->quote($this->newdb_name).'`;');
-            $this->db->query('GRANT ALL PRIVILEGES ON '.$this->db->quote($this->newdb_name).'.* TO '.$this->db->quote($this->newdb_user).'@'.$this->db->quote($this->dbhost).' IDENTIFIED BY \'password\';');
-            $this->db->query('SET PASSWORD FOR '.$this->db->quote($this->newdb_user).'@'.$this->db->quote($this->dbhost).' = PASSWORD(\''.$newdb_pw.'\');');
-            $this->db->query('FLUSH PRIVILEGES;');
+            $app->db->query('CREATE DATABASE IF NOT EXISTS `'.$app->db->quote($this->newdb_name).'`;');
+            $app->db->query('GRANT ALL PRIVILEGES ON '.$app->db->quote($this->newdb_name).'.* TO '.$app->db->quote($this->newdb_user).'@'.$app->db->quote($this->dbhost).' IDENTIFIED BY \'password\';');
+            $app->db->query('SET PASSWORD FOR '.$app->db->quote($this->newdb_user).'@'.$app->db->quote($this->dbhost).' = PASSWORD(\''.$newdb_pw.'\');');
+            $app->db->query('FLUSH PRIVILEGES;');
         
             // Add the new database to the customer databases
             // Assumes: charset = utf8
-            $this->app->dbmaster->query('INSERT INTO web_database (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, 
+            $app->dbmaster->query('INSERT INTO web_database (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, 
                 type, database_name, database_user, database_password, database_charset, remote_access, remote_ips, active) 
                 VALUES ('.$task['sys_userid'].', '.$task['sys_groupid'].', "'.$task['sys_perm_user'].'", "'.$task['sys_perm_group'].'", 
-                "'.$task['sys_perm_other'].'", '.$this->db->quote($serverid).', "mysql", "'.$this->db->quote($this->newdb_name).'", 
-                "'.$this->db->quote($this->newdb_user).'", "'.$this->db->quote($newdb_pw).'", "utf8", "n", "", "y");');
+                "'.$task['sys_perm_other'].'", '.$app->db->quote($serverid).', "mysql", "'.$app->db->quote($this->newdb_name).'", 
+                "'.$app->db->quote($this->newdb_user).'", "'.$app->db->quote($newdb_pw).'", "utf8", "n", "", "y");');
         }
 		*/
         
-        $mysqlver_res = $this->app->db->queryOneRecord('SELECT VERSION() as ver;');
+        $mysqlver_res = $app->db->queryOneRecord('SELECT VERSION() as ver;');
         $mysqlver = $mysqlver_res['ver'];
 		
-		$tmp = $this->app->dbmaster->queryOneRecord("SELECT value FROM aps_instances_settings WHERE name = 'main_database_password' AND instance_id = '".$this->db->quote($task['instance_id'])."';");
+		$tmp = $app->dbmaster->queryOneRecord("SELECT value FROM aps_instances_settings WHERE name = 'main_database_password' AND instance_id = '".$app->db->quote($task['instance_id'])."';");
         $newdb_pw = $tmp['value'];
 		
-		$tmp = $this->app->dbmaster->queryOneRecord("SELECT value FROM aps_instances_settings WHERE name = 'main_database_host' AND instance_id = '".$this->db->quote($task['instance_id'])."';");
+		$tmp = $app->dbmaster->queryOneRecord("SELECT value FROM aps_instances_settings WHERE name = 'main_database_host' AND instance_id = '".$app->db->quote($task['instance_id'])."';");
         $newdb_host = $tmp['value'];
 		
-		$tmp = $this->app->dbmaster->queryOneRecord("SELECT value FROM aps_instances_settings WHERE name = 'main_database_name' AND instance_id = '".$this->db->quote($task['instance_id'])."';");
+		$tmp = $app->dbmaster->queryOneRecord("SELECT value FROM aps_instances_settings WHERE name = 'main_database_name' AND instance_id = '".$app->db->quote($task['instance_id'])."';");
         $newdb_name = $tmp['value'];
 		
-		$tmp = $this->app->dbmaster->queryOneRecord("SELECT value FROM aps_instances_settings WHERE name = 'main_database_login' AND instance_id = '".$this->db->quote($task['instance_id'])."';");
+		$tmp = $app->dbmaster->queryOneRecord("SELECT value FROM aps_instances_settings WHERE name = 'main_database_login' AND instance_id = '".$app->db->quote($task['instance_id'])."';");
         $newdb_login = $tmp['value'];
         
         $this->putenv[] = 'DB_'.$db_id.'_TYPE=mysql';
@@ -368,6 +373,8 @@
      */
     private function prepareFiles($task, $sxe)
     {
+        global $app;
+        
         // Basically set the mapping for APS version 1.0, if not available -> newer way
         $mapping = $sxe->mapping;
         $mapping_path = $sxe->mapping['path'];
@@ -409,10 +416,10 @@
                 $this->processMappings($mapping, $mapping_url, $this->local_installpath);
             
                 // Set the appropriate file owner
-                $main_domain = $this->app->db->queryOneRecord("SELECT value FROM aps_instances_settings  
-                    WHERE name = 'main_domain' AND instance_id = '".$this->db->quote($task['instance_id'])."';");        
-                $owner_res = $this->db->queryOneRecord("SELECT system_user, system_group FROM web_domain  
-                        WHERE domain = '".$this->db->quote($main_domain['value'])."';");
+                $main_domain = $app->db->queryOneRecord("SELECT value FROM aps_instances_settings  
+                    WHERE name = 'main_domain' AND instance_id = '".$app->db->quote($task['instance_id'])."';");        
+                $owner_res = $app->db->queryOneRecord("SELECT system_user, system_group FROM web_domain  
+                        WHERE domain = '".$app->db->quote($main_domain['value'])."';");
                 $this->file_owner_user = $owner_res['system_user']; 
                 $this->file_owner_group = $owner_res['system_group'];
                 exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath));
@@ -420,9 +427,9 @@
         }
         catch(Exception $e)
         {
-            $this->app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_ERROR.'" 
-                WHERE id = "'.$this->db->quote($task['instance_id']).'";');
-            $this->app->log($e->getMessage());
+            $app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_ERROR.'" 
+                WHERE id = "'.$app->db->quote($task['instance_id']).'";');
+            $app->log($e->getMessage());
             return false;
         }
         
@@ -436,8 +443,10 @@
      */    
     private function prepareUserInputData($task)
     {
-        $userdata = $this->app->dbmaster->queryAllRecords("SELECT name, value FROM aps_instances_settings 
-            WHERE instance_id = '".$this->db->quote($task['instance_id'])."';");
+        global $app;
+        
+        $userdata = $app->dbmaster->queryAllRecords("SELECT name, value FROM aps_instances_settings 
+            WHERE instance_id = '".$app->db->quote($task['instance_id'])."';");
         if(empty($userdata)) return false;
         
         foreach($userdata as $data)
@@ -510,6 +519,8 @@
      */
     private function doInstallation($task, $sxe)
     {
+        global $app;
+        
         try
         {
             // Check if the install directory exists
@@ -546,15 +557,15 @@
                 // The install succeeded, chown newly created files too
                 exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath));
                 
-                $this->app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_SUCCESS.'" 
-                    WHERE id = "'.$this->db->quote($task['instance_id']).'";');
+                $app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_SUCCESS.'" 
+                    WHERE id = "'.$app->db->quote($task['instance_id']).'";');
             }
         }
         catch(Exception $e)
         {
-            $this->app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_ERROR.'" 
-                WHERE id = "'.$this->db->quote($task['instance_id']).'";');
-            $this->app->log($e->getMessage());
+            $app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_ERROR.'" 
+                WHERE id = "'.$app->db->quote($task['instance_id']).'";');
+            $app->log($e->getMessage());
             return false;
         }
         
@@ -581,18 +592,20 @@
      */
     public function installHandler($instanceid, $type)
     {
+        global $app;
+        
         // Set the given handle type, currently supported: install, delete
         if($type == 'install' || $type == 'delete') $this->handle_type = $type;
         else return false;
         
         // Get all instance metadata
 		/*
-        $task = $this->app->db->queryOneRecord("SELECT * FROM aps_instances AS i 
+        $task = $app->db->queryOneRecord("SELECT * FROM aps_instances AS i 
             INNER JOIN aps_packages AS p ON i.package_id = p.id 
             INNER JOIN client AS c ON i.customer_id = c.client_id
             WHERE i.id = ".$instanceid.";");
 		*/
-		$task = $this->app->db->queryOneRecord("SELECT * FROM aps_instances AS i 
+		$task = $app->db->queryOneRecord("SELECT * FROM aps_instances AS i 
             INNER JOIN aps_packages AS p ON i.package_id = p.id
             WHERE i.id = ".$instanceid.";");
         if(!$task) return false;  // formerly: throw new Exception('The InstanceID doesn\'t exist.');
@@ -609,7 +622,7 @@
 			curl_setopt($ch, CURLOPT_TIMEOUT, 0);
 			curl_setopt($ch, CURLOPT_FAILONERROR, 1);
 			curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);     
-			if(curl_exec($ch) === false) $this->app->log(curl_error ($ch),LOGLEVEL_DEBUG);
+			if(curl_exec($ch) === false) $app->log(curl_error ($ch),LOGLEVEL_DEBUG);
 			fclose($fh);
 			curl_close($ch);
 		}
@@ -631,9 +644,9 @@
         // Check if the meta file is existing
         if(!$metafile)
         {
-            $this->app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_ERROR.'" 
-                WHERE id = "'.$this->db->quote($task['instance_id']).'";');
-            $this->app->log('Unable to find the meta data file of package '.$task['path']);
+            $app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_ERROR.'" 
+                WHERE id = "'.$app->db->quote($task['instance_id']).'";');
+            $app->log('Unable to find the meta data file of package '.$task['path']);
             return false;
         }
         
@@ -665,8 +678,8 @@
         // Finally delete the instance entry + settings
         if($this->handle_type == 'delete')
         {
-            $this->app->dbmaster->query('DELETE FROM aps_instances WHERE id = "'.$this->db->quote($task['instance_id']).'";');
-            $this->app->dbmaster->query('DELETE FROM aps_instances_settings WHERE instance_id = "'.$this->db->quote($task['instance_id']).'";');
+            $app->dbmaster->query('DELETE FROM aps_instances WHERE id = "'.$app->db->quote($task['instance_id']).'";');
+            $app->dbmaster->query('DELETE FROM aps_instances_settings WHERE instance_id = "'.$app->db->quote($task['instance_id']).'";');
         }
         
         unset($sxe);

--
Gitblit v1.9.1