From 12ae7f4b1e0544a02a299ec5ef7ac998c8c800d0 Mon Sep 17 00:00:00 2001
From: vogelor <vogelor@ispconfig3>
Date: Tue, 16 Dec 2008 10:47:28 -0500
Subject: [PATCH] It is now possible to add additional templates to the client (and delete them)

---
 interface/web/client/tools.inc.php |   28 +++++++++++++++++++++++++---
 1 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/interface/web/client/tools.inc.php b/interface/web/client/tools.inc.php
index d98392f..9cbf8eb 100644
--- a/interface/web/client/tools.inc.php
+++ b/interface/web/client/tools.inc.php
@@ -32,9 +32,10 @@
 	/*
 	 * Get the master-template for the client
 	 */
-	$sql = "SELECT template_master FROM client WHERE client_id = " . intval($clientId);
+	$sql = "SELECT template_master, template_additional FROM client WHERE client_id = " . intval($clientId);
 	$record = $app->db->queryOneRecord($sql);
 	$masterTemplateId = $record['template_master'];
+	$additionalTemplateStr = $record['template_additional'];
 
 	/*
 	 * if the master-Template is custom there is NO changing
@@ -42,13 +43,34 @@
 	if ($masterTemplateId > 0){
 		$sql = "SELECT * FROM client_template WHERE template_id = " . intval($masterTemplateId);
 		$limits = $app->db->queryOneRecord($sql);
+	} else {
+		$limits = $this->dataRecord;
 	}
 
 	/*
-	 * TODO: Process the additional tempaltes here (add them to the limits
+	 * Process the additional tempaltes here (add them to the limits
 	 * if != -1)
-	 * (like $limits['limit_database'] += $limitAdditional)
 	 */
+	$addTpl = explode('/', $additionalTemplateStr);
+	foreach ($addTpl as $item){
+		if (trim($item) != ''){
+			$sql = "SELECT * FROM client_template WHERE template_id = " . intval($item);
+			$addLimits = $app->db->queryOneRecord($sql);
+			/* maybe the template is deleted in the meantime */
+			if (is_array($addLimits)){
+				foreach($addLimits as $k => $v){
+					if ($limits[$k] > -1){
+						if ($v == -1) {
+							$limits[$k] = -1;
+						}
+						else {
+							$limits[$k] += $v;
+						}
+					}
+				}
+			}
+		}
+	}
 
 	/*
 	 * Write all back to the database

--
Gitblit v1.9.1