From 836f8329426122adbfc30d67144f7709d7eea961 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 05 Mar 2010 09:18:23 -0500
Subject: [PATCH] Fixed tpl generation classes and added missing language file createion code again.

---
 interface/lib/classes/tform_tpl_generator.inc.php |  619 +++++++++++++++++++++++++++++---------------------------
 1 files changed, 322 insertions(+), 297 deletions(-)

diff --git a/interface/lib/classes/tform_tpl_generator.inc.php b/interface/lib/classes/tform_tpl_generator.inc.php
index 2955af0..43c5e63 100644
--- a/interface/lib/classes/tform_tpl_generator.inc.php
+++ b/interface/lib/classes/tform_tpl_generator.inc.php
@@ -1,298 +1,323 @@
-<?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.
-*/
-
-class tform_tpl_generator {
-	
-	function buildHTML($formDef,$tab) {
-		
-		global $app;
-		
-		$module = $_SESSION["s"]["module"]["name"];
-		
-		$html = '<h2><tmpl_var name="list_head_txt"></h2>
-<p><tmpl_var name="list_desc_txt"></p>
-
-<div class="panel panel_'.$formDef['name'].'">
-
-  <div class="pnl_formsarea">
-    <fieldset class="inlineLabels"><legend>'.$formDef['tabs'][$tab]['title'].'</legend>';
-
-		$lang = array();
-		$html_reqestedelement = "<em>*</em> ";
-
-		foreach($formDef['tabs'][$tab]['fields'] as $key => $field) {
-			if ($field['required'] == true ) { $html_reqcode = $html_reqestedelement; } else { $html_reqcode = ''; }
-
-			switch ($field['formtype']) {
-				case 'TEXT':
-					$html .= "
-      <div class=\"ctrlHolder\">
-      	<label for=\"".$key."\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</label>
-        <input name=\"".$key."\" id=\"".$key."\" value=\"{tmpl_var name='".$key."'}\" size=\"".$field['width']."\" maxlength=\"".$field['maxlength']."\" type=\"text\" class=\"textInput\" />
-			</div>";
-				break;
-				case 'TEXTAREA':
-					$html .= "
-      <div class=\"ctrlHolder\">
-      	<label for=\"".$key."\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</label>
-        <textarea name=\"".$key."\" id=\"".$key."\" rows='".$field['rows']."' cols='".$field['cols']."'>{tmpl_var name='".$key."'}</textarea>
-      </div>";
-				break;
-				case 'SELECT':
-					$html .= "
-      <div class=\"ctrlHolder\">
-      	<label for=\"".$key."\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</label>
-        <select name=\"".$key."\" id=\"".$key."\" class=\"selectInput\">
-					{tmpl_var name='".$key."'}
-				</select>
-      </div>";
-				break;
-				case 'MULTIPLE':
-					$html .= "
-      <div class=\"ctrlHolder\">
-      	<label for=\"".$key."\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</label>
-        <select multiple name=\"".$key."\" id=\"".$key."\" class=\"selectInput\">
-					{tmpl_var name='".$key."'}
-				</select>
-      </div>";
-				break;
-				case 'PASSWORD':
-					$html .= "
-      <div class=\"ctrlHolder\">
-      	<label for=\"".$key."\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</label>
-        <input name=\"".$key."\" id=\"".$key."\" value=\"{tmpl_var name='".$key."'}\" size=\"".$field['width']."\" maxlength=\"".$field['maxlength']."\" type=\"password\" class=\"textInput\" />
-			</div>";
-				break;
-				case 'CHECKBOX':
-					$html .= "
-      <div class=\"ctrlHolder\">
-				<p class=\"label\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</p>
-					<div class=\"multiField\">
-						{tmpl_var name='".$key."'}
-					</div>
-			</div>";
-				break;
-				case 'CHECKBOXARRAY':
-					$html .= "
-      <div class=\"ctrlHolder\">
-				<p class=\"label\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</p>
-					<div class=\"multiField\">
-						{tmpl_var name='".$key."'}
-					</div>
-			</div>";
-				break;
-				case 'RADIO':
-					$html .= "
-      <div class=\"ctrlHolder\">
-				<p class=\"label\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</p>
-					<div class=\"multiField\">
-						{tmpl_var name='".$key."'}
-					</div>
-			</div>";
-				break;
-			}
-			
-			// Language File Eintrag f�r "Feld-Titel" anlegen
-			$lang[$key."_txt"] = $key;
-			
-			// language File Eintrag, f�r error-Text anlegen
-			if(isset($field["errmsg"]) && $field["errmsg"] != '') {
-				$errmsg = $field["errmsg"];
-				$lang[$errmsg] = $errmsg;
-			}
-			
-		}
-		
-		$html .= "
-    </fieldset>
-
-    <input type=\"hidden\" name=\"id\" value=\"{tmpl_var name='id'}\">
-
-    <div class=\"buttonHolder buttons\">
-      <button class=\"positive iconstxt icoPositive\" type=\"button\" value=\"{tmpl_var name='btn_save_txt'}\" onClick=\"submitForm('pageForm','".$module."/".$formDef["action"]."');\"><span>{tmpl_var name='btn_save_txt'}</span></button>
-      <button class=\"negative iconstxt icoNegative\" type=\"button\" value=\"{tmpl_var name='btn_cancel_txt'}\" onClick=\"loadContent('".$module."/".$formDef["list_default"]."');\"><span>{tmpl_var name='btn_cancel_txt'}</span></button>
-    </div>
-  </div>
-  
-</div>
-";
-
-				
-		// speichere Template
-		if (!$handle = fopen($formDef['tabs'][$tab]['template'], 'w')) { 
-        	print "Cannot open file ($filename)"; 
-        	exit; 
-   		} 
- 
-   		if (!fwrite($handle, $html)) { 
-			print "Cannot write to file ($filename)"; 
-			exit; 
-		}
-		fclose($handle);
-		
-		// �berpr�fe, ob es die Tabelle schon gibt,
-		// ansonsten wird sie angelegt
-		$tables = $app->db->getTables();
-		
-		if(!@in_array($formDef['db_table'],$tables)) {
-			// Datenbank noch nicht vorhanden
-			
-			$columns = array();
-			
-			// f�ge ID Feld hinzu
-			$col = array(	'action' 		=> 'add',
-							'name'			=> $formDef["db_table_idx"],
-							'type'			=> 'int64',
-							'typeValue'		=> '',
-							'defaultValue'	=> false,
-							'notNull'		=> true,
-							'autoInc'		=> true,
-							'option'		=> 'primary'
-						);
-					
-			$columns[] = $col;
-			$app->db->show_error_messages = true;
-			
-			if($formDef["auth"] == 'yes') {
-				
-				$col = array(	'action' 		=> 'add',
-								'name'			=> 'sys_userid',
-								'type'			=> 'int32',
-								'typeValue'		=> '',
-								'defaultValue'	=> '0',
-								'notNull'		=> true
-							);
-				$columns[] = $col;
-				$col = array(	'action' 		=> 'add',
-								'name'			=> 'sys_groupid',
-								'type'			=> 'int32',
-								'typeValue'		=> '',
-								'defaultValue'	=> '0',
-								'notNull'		=> true
-							);
-				$columns[] = $col;
-				$col = array(	'action' 		=> 'add',
-								'name'			=> 'sys_perm_user',
-								'type'			=> 'varchar',
-								'typeValue'		=> '5',
-								'defaultValue'	=> 'NULL',
-								'notNull'		=> true
-							);
-				$columns[] = $col;
-				$col = array(	'action' 		=> 'add',
-								'name'			=> 'sys_perm_group',
-								'type'			=> 'varchar',
-								'typeValue'		=> '5',
-								'defaultValue'	=> 'NULL',
-								'notNull'		=> true
-							);
-				$columns[] = $col;
-				$col = array(	'action' 		=> 'add',
-								'name'			=> 'sys_perm_other',
-								'type'			=> 'varchar',
-								'typeValue'		=> '5',
-								'defaultValue'	=> 'NULL',
-								'notNull'		=> true
-							);
-				$columns[] = $col;
-			
-			}
-			
-			
-			foreach($formDef['tabs'] as $tab) {
-				foreach($tab["fields"] as $name => $field) {
-					/*
-				       $columns = array(action =>   add | alter | drop
-				                        name =>     Spaltenname
-				                        name_new => neuer Spaltenname, nur bei 'alter' belegt
-				                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
-				                        typeValue => Wert z.B. bei Varchar
-				                        defaultValue =>  Default Wert
-				                        notNull =>   true | false
-				                        autoInc =>   true | false
-				                        option =>   unique | primary | index)
-				       
-				       
-					*/
-					switch ($field["datatype"]) {
-						case 'INTEGER':
-							$type = 'int32';
-							$typevalue = '';
-							$defaultValue	= ($field["default"] != '')?$field["default"]:'0';
-						break;
-						case 'DOUBLE':
-							$type = 'double';
-							$typevalue = '';
-							$defaultValue	= ($field["default"] != '')?$field["default"]:'0';
-						break;
-						case 'CURRENCY':
-							$type = 'double';
-							$typevalue = '';
-							$defaultValue	= ($field["default"] != '')?$field["default"]:'0';
-						break;
-						case 'VARCHAR':
-							$type = 'varchar';
-							$typeValue = ($field["maxlength"] > 0 and $field["maxlength"] <= 256)?$field["maxlength"]:255;
-							// $defaultValue	= ($field["default"] != '')?$field["default"]:'NOT NULL';
-							$defaultValue	= ($field["default"] != '')?$field["default"]:'NULL';
-						break;
-						case 'TEXT':
-							$type = 'text';
-							$typevalue = '';
-							$defaultValue = 'NULL';
-						break;
-						case 'DATE':
-							$type = 'int64';
-							$typevalue = '';
-							$defaultValue	= ($field["default"] != '')?$field["default"]:'0';
-						break;
-					}
-					
-					
-					$col = array(	'action' 		=> 'add',
-									'name'			=> $name,
-									'type'			=> $type,
-									'typeValue'		=> $typeValue,
-									'defaultValue'	=> $defaultValue,
-									'notNull'		=> true
-									);
-					
-					$columns[] = $col;
-				}
-			}
-		
-		$app->db->createTable($formDef["db_table"],$columns);
-		
-		}
-    }
-	
-}
-
+<?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.
+*/
+
+class tform_tpl_generator {
+	
+	function buildHTML($formDef,$tab) {
+		
+		global $app;
+		
+		$module = $_SESSION["s"]["module"]["name"];
+		
+		$html = '<h2><tmpl_var name="list_head_txt"></h2>
+<p><tmpl_var name="list_desc_txt"></p>
+
+<div class="panel panel_'.$formDef['name'].'">
+
+  <div class="pnl_formsarea">
+    <fieldset class="inlineLabels"><legend>'.$formDef['tabs'][$tab]['title'].'</legend>';
+
+		$lang = array();
+		$html_reqestedelement = "<em>*</em> ";
+
+		foreach($formDef['tabs'][$tab]['fields'] as $key => $field) {
+			if ($field['required'] == true ) { $html_reqcode = $html_reqestedelement; } else { $html_reqcode = ''; }
+
+			switch ($field['formtype']) {
+				case 'TEXT':
+					$html .= "
+      <div class=\"ctrlHolder\">
+      	<label for=\"".$key."\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</label>
+        <input name=\"".$key."\" id=\"".$key."\" value=\"{tmpl_var name='".$key."'}\" size=\"".$field['width']."\" maxlength=\"".$field['maxlength']."\" type=\"text\" class=\"textInput\" />
+			</div>";
+				break;
+				case 'TEXTAREA':
+					$html .= "
+      <div class=\"ctrlHolder\">
+      	<label for=\"".$key."\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</label>
+        <textarea name=\"".$key."\" id=\"".$key."\" rows='".$field['rows']."' cols='".$field['cols']."'>{tmpl_var name='".$key."'}</textarea>
+      </div>";
+				break;
+				case 'SELECT':
+					$html .= "
+      <div class=\"ctrlHolder\">
+      	<label for=\"".$key."\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</label>
+        <select name=\"".$key."\" id=\"".$key."\" class=\"selectInput\">
+					{tmpl_var name='".$key."'}
+				</select>
+      </div>";
+				break;
+				case 'MULTIPLE':
+					$html .= "
+      <div class=\"ctrlHolder\">
+      	<label for=\"".$key."\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</label>
+        <select multiple name=\"".$key."\" id=\"".$key."\" class=\"selectInput\">
+					{tmpl_var name='".$key."'}
+				</select>
+      </div>";
+				break;
+				case 'PASSWORD':
+					$html .= "
+      <div class=\"ctrlHolder\">
+      	<label for=\"".$key."\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</label>
+        <input name=\"".$key."\" id=\"".$key."\" value=\"{tmpl_var name='".$key."'}\" size=\"".$field['width']."\" maxlength=\"".$field['maxlength']."\" type=\"password\" class=\"textInput\" />
+			</div>";
+				break;
+				case 'CHECKBOX':
+					$html .= "
+      <div class=\"ctrlHolder\">
+				<p class=\"label\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</p>
+					<div class=\"multiField\">
+						{tmpl_var name='".$key."'}
+					</div>
+			</div>";
+				break;
+				case 'CHECKBOXARRAY':
+					$html .= "
+      <div class=\"ctrlHolder\">
+				<p class=\"label\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</p>
+					<div class=\"multiField\">
+						{tmpl_var name='".$key."'}
+					</div>
+			</div>";
+				break;
+				case 'RADIO':
+					$html .= "
+      <div class=\"ctrlHolder\">
+				<p class=\"label\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</p>
+					<div class=\"multiField\">
+						{tmpl_var name='".$key."'}
+					</div>
+			</div>";
+				break;
+			}
+			
+			// Language File Eintrag f�r "Feld-Titel" anlegen
+			$lang[$key."_txt"] = $key;
+			
+			// language File Eintrag, f�r error-Text anlegen
+			if(isset($field["errmsg"]) && $field["errmsg"] != '') {
+				$errmsg = $field["errmsg"];
+				$lang[$errmsg] = $errmsg;
+			}
+			
+		}
+		
+		$html .= "
+    </fieldset>
+
+    <input type=\"hidden\" name=\"id\" value=\"{tmpl_var name='id'}\">
+
+    <div class=\"buttonHolder buttons\">
+      <button class=\"positive iconstxt icoPositive\" type=\"button\" value=\"{tmpl_var name='btn_save_txt'}\" onClick=\"submitForm('pageForm','".$module."/".$formDef["action"]."');\"><span>{tmpl_var name='btn_save_txt'}</span></button>
+      <button class=\"negative iconstxt icoNegative\" type=\"button\" value=\"{tmpl_var name='btn_cancel_txt'}\" onClick=\"loadContent('".$module."/".$formDef["list_default"]."');\"><span>{tmpl_var name='btn_cancel_txt'}</span></button>
+    </div>
+  </div>
+  
+</div>
+";
+
+				
+		// speichere Template
+		if (!$handle = fopen($formDef['tabs'][$tab]['template'], 'w')) { 
+        	print "Cannot open file ($filename)"; 
+        	exit; 
+   		} 
+ 
+   		if (!fwrite($handle, $html)) { 
+			print "Cannot write to file ($filename)"; 
+			exit; 
+		}
+		fclose($handle);
+		
+		$this->lng_add($lang,$formDef);
+		
+		// �berpr�fe, ob es die Tabelle schon gibt,
+		// ansonsten wird sie angelegt
+		$tables = $app->db->getTables();
+		
+		if(!@in_array($formDef['db_table'],$tables)) {
+			// Datenbank noch nicht vorhanden
+			
+			$columns = array();
+			
+			// f�ge ID Feld hinzu
+			$col = array(	'action' 		=> 'add',
+							'name'			=> $formDef["db_table_idx"],
+							'type'			=> 'int64',
+							'typeValue'		=> '',
+							'defaultValue'	=> false,
+							'notNull'		=> true,
+							'autoInc'		=> true,
+							'option'		=> 'primary'
+						);
+					
+			$columns[] = $col;
+			$app->db->show_error_messages = true;
+			
+			if($formDef["auth"] == 'yes') {
+				
+				$col = array(	'action' 		=> 'add',
+								'name'			=> 'sys_userid',
+								'type'			=> 'int32',
+								'typeValue'		=> '',
+								'defaultValue'	=> '0',
+								'notNull'		=> true
+							);
+				$columns[] = $col;
+				$col = array(	'action' 		=> 'add',
+								'name'			=> 'sys_groupid',
+								'type'			=> 'int32',
+								'typeValue'		=> '',
+								'defaultValue'	=> '0',
+								'notNull'		=> true
+							);
+				$columns[] = $col;
+				$col = array(	'action' 		=> 'add',
+								'name'			=> 'sys_perm_user',
+								'type'			=> 'varchar',
+								'typeValue'		=> '5',
+								'defaultValue'	=> 'NULL',
+								'notNull'		=> true
+							);
+				$columns[] = $col;
+				$col = array(	'action' 		=> 'add',
+								'name'			=> 'sys_perm_group',
+								'type'			=> 'varchar',
+								'typeValue'		=> '5',
+								'defaultValue'	=> 'NULL',
+								'notNull'		=> true
+							);
+				$columns[] = $col;
+				$col = array(	'action' 		=> 'add',
+								'name'			=> 'sys_perm_other',
+								'type'			=> 'varchar',
+								'typeValue'		=> '5',
+								'defaultValue'	=> 'NULL',
+								'notNull'		=> true
+							);
+				$columns[] = $col;
+			
+			}
+			
+			
+			foreach($formDef['tabs'] as $tab) {
+				foreach($tab["fields"] as $name => $field) {
+					/*
+				       $columns = array(action =>   add | alter | drop
+				                        name =>     Spaltenname
+				                        name_new => neuer Spaltenname, nur bei 'alter' belegt
+				                        type =>     42go-Meta-Type: int16, int32, int64, double, char, varchar, text, blob
+				                        typeValue => Wert z.B. bei Varchar
+				                        defaultValue =>  Default Wert
+				                        notNull =>   true | false
+				                        autoInc =>   true | false
+				                        option =>   unique | primary | index)
+				       
+				       
+					*/
+					switch ($field["datatype"]) {
+						case 'INTEGER':
+							$type = 'int32';
+							$typevalue = '';
+							$defaultValue	= ($field["default"] != '')?$field["default"]:'0';
+						break;
+						case 'DOUBLE':
+							$type = 'double';
+							$typevalue = '';
+							$defaultValue	= ($field["default"] != '')?$field["default"]:'0';
+						break;
+						case 'CURRENCY':
+							$type = 'double';
+							$typevalue = '';
+							$defaultValue	= ($field["default"] != '')?$field["default"]:'0';
+						break;
+						case 'VARCHAR':
+							$type = 'varchar';
+							$typeValue = ($field["maxlength"] > 0 and $field["maxlength"] <= 256)?$field["maxlength"]:255;
+							// $defaultValue	= ($field["default"] != '')?$field["default"]:'NOT NULL';
+							$defaultValue	= ($field["default"] != '')?$field["default"]:'NULL';
+						break;
+						case 'TEXT':
+							$type = 'text';
+							$typevalue = '';
+							$defaultValue = 'NULL';
+						break;
+						case 'DATE':
+							$type = 'int64';
+							$typevalue = '';
+							$defaultValue	= ($field["default"] != '')?$field["default"]:'0';
+						break;
+					}
+					
+					
+					$col = array(	'action' 		=> 'add',
+									'name'			=> $name,
+									'type'			=> $type,
+									'typeValue'		=> $typeValue,
+									'defaultValue'	=> $defaultValue,
+									'notNull'		=> true
+									);
+					
+					$columns[] = $col;
+				}
+			}
+		
+		$app->db->createTable($formDef["db_table"],$columns);
+		
+		}
+	
+		function lng_add($lang,$formDef) {
+		global $go_api, $go_info,$conf;
+		
+		$lng_file = "lib/lang/".$conf["language"]."_".$formDef['name'].".lng";
+		if(is_file($lng_file)) {
+			include($lng_file);
+		} else {
+			$wb = array();
+		}
+		
+		$wb_out = array_merge($lang,$wb);
+		
+		if(is_array($wb_out)) {
+			$fp = fopen ($lng_file, "w");
+			fwrite($fp,"<?php\r\n");
+			foreach($wb_out as $key => $val) {
+				$new_line = '$wb["'.$key.'"] = '."'$val';\r\n";
+				fwrite($fp,$new_line);
+				
+			}
+			fwrite($fp,"?>");
+			fclose($fp);
+		}
+	}
+}
+
 ?>
\ No newline at end of file

--
Gitblit v1.9.1