From 11c7f5c57383ac5b415995fe3df9198915aa3419 Mon Sep 17 00:00:00 2001
From: redray <redray@ispconfig3>
Date: Mon, 15 Dec 2008 07:09:24 -0500
Subject: [PATCH] added the possibility to define more prefixes (implemented only for db-modul). Because a database my only be 32 chars in utf-8 it's better for my purposes to use CLIENTID instead of CLIENTNAME

---
 interface/web/sites/tools.inc.php |  130 ++++++++++++++++++++++++++++++++++++-------
 1 files changed, 108 insertions(+), 22 deletions(-)

diff --git a/interface/web/sites/tools.inc.php b/interface/web/sites/tools.inc.php
index c2b8297..2047400 100644
--- a/interface/web/sites/tools.inc.php
+++ b/interface/web/sites/tools.inc.php
@@ -1,22 +1,108 @@
-<?php
-function convertClientName($name){
-	/**
-	 *  only allow 'a'..'z', '_', '0'..'9'
-	 */
-	$allowed = 'abcdefghijklmnopqrstuvwxyz0123456789_';
-	$res = '';
-	$name = strtolower(trim($name));
-	for ($i=0; $i < strlen($name); $i++){
-		if ($name[$i] == ' ') continue;
-		if (strpos($allowed, $name[$i]) !== false){
-			$res .= $name[$i];
-		}
-		else {
-			$res .= '_';
-		}
-	}
-	return $res;
-}
-
-
-?>
+<?php
+/*
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+    * Neither the name of ISPConfig nor the names of its contributors
+      may be used to endorse or promote products derived from this software without
+      specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+function replacePrefix($name, $dataRecord){
+    $keywordlist=array('CLIENTNAME','CLIENTID');
+
+    if ($name != '') {
+        foreach ($keywordlist as $keyword) {
+            if (substr_count($name, '['.$keyword.']') > 0) {
+                switch ($keyword) {
+                    case 'CLIENTNAME':
+                        $res=str_replace('['.$keyword.']', getClientName($dataRecord), $name);        
+                        break;
+                    case 'CLIENTID':
+                        $res=str_replace('['.$keyword.']', '000', $name);        
+                        break;
+                }
+            }
+        }
+    } else {
+        $res='';
+    }
+    
+    return $res;
+}
+
+function getClientName($dataRecord) {
+    global $app, $conf;
+
+    if($_SESSION["s"]["user"]["typ"] != 'admin') {
+    	// Get the group-id of the user
+    	$client_group_id = $_SESSION["s"]["user"]["default_group"];
+    } else {
+    	// Get the group-id from the data itself
+    	$client_group_id = $dataRecord['client_group_id'];
+    }
+    /* get the name of the client */
+    $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id);
+    $clientName = $tmp['name'];
+    if ($clientName == "") $clientName = 'default';
+    $clientName = convertClientName($clientName);
+    return $clientName;
+}
+
+function getClientID($dataRecord) {
+    global $app, $conf;
+
+    if($_SESSION["s"]["user"]["typ"] != 'admin') {
+    	// Get the group-id of the user
+    	$client_group_id = $_SESSION["s"]["user"]["default_group"];
+    } else {
+    	// Get the group-id from the data itself
+    	$client_group_id = $dataRecord['client_group_id'];
+    }
+    /* get the name of the client */
+    $tmp = $app->db->queryOneRecord("SELECT id FROM sys_group WHERE groupid = " . $client_group_id);
+    $clientID = $tmp['id'];
+    if ($clientID == '') $clientID = '0';
+    return $clientID;
+}
+
+function convertClientName($name){
+	/**
+	 *  only allow 'a'..'z', '_', '0'..'9'
+	 */
+	$allowed = 'abcdefghijklmnopqrstuvwxyz0123456789_';
+	$res = '';
+	$name = strtolower(trim($name));
+	for ($i=0; $i < strlen($name); $i++){
+		if ($name[$i] == ' ') continue;
+		if (strpos($allowed, $name[$i]) !== false){
+			$res .= $name[$i];
+		}
+		else {
+			$res .= '_';
+		}
+	}
+	return $res;
+}
+
+
+?>

--
Gitblit v1.9.1