';
$lang = array();
foreach($formDef['tabs'][$tab]['fields'] as $key => $field) {
switch ($field['formtype']) {
case 'TEXT':
$html .= "
{tmpl_var name='".$key."_txt'}: |
|
";
break;
case 'TEXTAREA':
$html .= "
{tmpl_var name='".$key."_txt'}: |
|
";
break;
case 'SELECT':
$html .= "
{tmpl_var name='".$key."_txt'}: |
|
";
break;
case 'MULTIPLE':
$html .= "
{tmpl_var name='".$key."_txt'}: |
|
";
break;
case 'PASSWORD':
$html .= "
{tmpl_var name='".$key."_txt'}: |
|
";
break;
case 'CHECKBOX':
$html .= "
{tmpl_var name='".$key."_txt'}: |
{tmpl_var name='".$key."'} |
";
break;
case 'CHECKBOXARRAY':
$html .= "
{tmpl_var name='".$key."_txt'}: |
{tmpl_var name='".$key."'} |
";
break;
case 'RADIO':
$html .= "
{tmpl_var name='".$key."_txt'}: |
{tmpl_var name='".$key."'} |
";
break;
}
// Language File Eintrag für "Feld-Titel" anlegen
$lang[$key."_txt"] = $key;
// language File Eintrag, für error-Text anlegen
if($field["errmsg"] != '') {
$errmsg = $field["errmsg"];
$lang[$errmsg] = $errmsg;
}
}
$html .= "
|
|
|
|
";
$lang['btn_save_txt'] = "Save";
$lang['btn_cancel_txt'] = "Cancel";
$html .= "\r\n\r\n";
// 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);
// speichere language Datei
$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' => '',
'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' => '',
'notNull' => true
);
$columns[] = $col;
$col = array( 'action' => 'add',
'name' => 'sys_groupid',
'type' => 'int32',
'typeValue' => '',
'defaultValue' => '',
'notNull' => true
);
$columns[] = $col;
$col = array( 'action' => 'add',
'name' => 'sys_perm_user',
'type' => 'varchar',
'typeValue' => '5',
'defaultValue' => '',
'notNull' => true
);
$columns[] = $col;
$col = array( 'action' => 'add',
'name' => 'sys_perm_group',
'type' => 'varchar',
'typeValue' => '5',
'defaultValue' => '',
'notNull' => true
);
$columns[] = $col;
$col = array( 'action' => 'add',
'name' => 'sys_perm_other',
'type' => 'varchar',
'typeValue' => '5',
'defaultValue' => '',
'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 = '';
break;
case 'DOUBLE':
$type = 'double';
$typevalue = '';
break;
case 'CURRENCY':
$type = 'double';
$typevalue = '';
break;
case 'VARCHAR':
$type = 'varchar';
$typeValue = ($field["maxlength"] > 0 and $field["maxlength"] <= 256)?$field["maxlength"]:255;
break;
case 'TEXT':
$type = 'text';
$typevalue = '';
break;
case 'DATE':
$type = 'int64';
$typevalue = '';
break;
}
$col = array( 'action' => 'add',
'name' => $name,
'type' => $type,
'typeValue' => $typeValue,
'defaultValue' => $field["default"],
'notNull' => true
);
$columns[] = $col;
}
}
$app->db->createTable($formDef["db_table"],$columns);
}
}
function lng_add($lang,$formDef) {
global $go_api, $go_info;
$lng_file = "lib/lang/en_".$formDef['name'].".lng";
if(is_file($lng_file)) {
include($lng_file);
} else {
$wb = array();
}
$wb_out = array_merge($wb,$lang);
if(is_array($wb_out)) {
$fp = fopen ($lng_file, "w");
fwrite($fp," $val) {
$new_line = '$wb["'.$key.'"] = '."'$val';\r\n";
fwrite($fp,$new_line);
}
fwrite($fp,"?>");
fclose($fp);
}
}
}
?>