From 5a43e7a2ea0cf7af35c100cb67e4a53566cbc496 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 03 Feb 2012 05:58:01 -0500
Subject: [PATCH] - Implemented new backup and restore functions for websites and databases (see also FS#1389) - Added "actions" framework in server to replace the functions provided by the core modules - Moved system update function from remoteactins core module to software update plugin.

---
 server/lib/classes/modules.inc.php |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/server/lib/classes/modules.inc.php b/server/lib/classes/modules.inc.php
index 2c5b349..ef600bd 100644
--- a/server/lib/classes/modules.inc.php
+++ b/server/lib/classes/modules.inc.php
@@ -229,8 +229,46 @@
 				$app->log('Processed datalog_id '.$d['datalog_id'],LOGLEVEL_DEBUG);
 			}
 		}
+	}
+	
+	function processActions() {
+		global $app,$conf;
 		
+		//* get the server_id of the local server
+		$server_id = intval($conf["server_id"]);
 		
+		include_once (SCRIPT_PATH."/lib/remote_action.inc.php");
+		
+		//* SQL query to get all pending actions
+		$sql = "SELECT action_id, action_type, action_param " .
+				"FROM sys_remoteaction " .
+				"WHERE server_id = " . $server_id . " ".
+				" AND  action_id > " . intval($maxid_remote_action) . " ".
+				"ORDER BY action_id";
+		
+		$actions = $app->dbmaster->queryAllRecords($sql);
+		
+		if(is_array($actions)) {
+			foreach($actions as $action) {
+				
+				//* Raise the action
+				$state = $app->plugins->raiseAction($action['action_type'],$action['action_param']);
+				
+				//* Update the action state
+				$sql = "UPDATE sys_remoteaction " .
+						"SET action_state = '" . $app->dbmaster->quote($state) . "' " .
+						"WHERE action_id = " . intval($action['action_id']);
+				$app->dbmaster->query($sql);
+
+				/*
+				* Then save the maxid for the next time...
+				*/
+				$fp = fopen(ISPC_LIB_PATH."/remote_action.inc.php", 'wb');
+				$content = '<?php' . "\n" . '$maxid_remote_action = ' . $action['action_id'] . ';' . "\n?>";
+				fwrite($fp, $content);
+				fclose($fp);
+			}
+		}
 		
 		
 		

--
Gitblit v1.9.1