Till Brehm
2014-02-15 8748b35d2cfcea7d37baeb8a8d893e974bc3ba6f
interface/lib/classes/tform_tpl_generator.inc.php
@@ -29,13 +29,13 @@
*/
class tform_tpl_generator {
   function buildHTML($formDef,$tab) {
   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>
@@ -51,22 +51,22 @@
         if ($field['required'] == true ) { $html_reqcode = $html_reqestedelement; } else { $html_reqcode = ''; }
         switch ($field['formtype']) {
            case 'TEXT':
               $html .= "
         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 .= "
         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 .= "
         case 'SELECT':
            $html .= "
      <div class=\"ctrlHolder\">
         <label for=\"".$key."\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</label>
        <select name=\"".$key."\" id=\"".$key."\" class=\"selectInput\">
@@ -74,8 +74,8 @@
            </select>
      </div>";
            break;
            case 'MULTIPLE':
               $html .= "
         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\">
@@ -83,15 +83,15 @@
            </select>
      </div>";
            break;
            case 'PASSWORD':
               $html .= "
         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 .= "
         case 'CHECKBOX':
            $html .= "
      <div class=\"ctrlHolder\">
            <p class=\"label\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</p>
               <div class=\"multiField\">
@@ -99,8 +99,8 @@
               </div>
         </div>";
            break;
            case 'CHECKBOXARRAY':
               $html .= "
         case 'CHECKBOXARRAY':
            $html .= "
      <div class=\"ctrlHolder\">
            <p class=\"label\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</p>
               <div class=\"multiField\">
@@ -108,8 +108,8 @@
               </div>
         </div>";
            break;
            case 'RADIO':
               $html .= "
         case 'RADIO':
            $html .= "
      <div class=\"ctrlHolder\">
            <p class=\"label\">".$html_reqcode."{tmpl_var name='".$key."_txt'}</p>
               <div class=\"multiField\">
@@ -118,116 +118,116 @@
         </div>";
            break;
         }
         // Language File Eintrag für "Feld-Titel" anlegen
         // Language File Eintrag für "Feld-Titel" anlegen
         $lang[$key."_txt"] = $key;
         // language File Eintrag, für error-Text anlegen
         // 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>
      <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;
      if (!$handle = fopen($formDef['tabs'][$tab]['template'], 'w')) {
         print "Cannot open file (".$formDef['tabs'][$tab]['template'].")";
         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,
      $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)) {
      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'
                  );
         // 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
                     );
            $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
                     );
            $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
                     );
            $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
                     );
            $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
                     );
            $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) {
               /*
@@ -240,84 +240,86 @@
                                    notNull =>   true | false
                                    autoInc =>   true | false
                                    option =>   unique | primary | index)
               */
               switch ($field["datatype"]) {
                  case 'INTEGER':
                     $type = 'int32';
                     $typevalue = '';
                     $defaultValue   = ($field["default"] != '')?$field["default"]:'0';
               case 'INTEGER':
                  $type = 'int32';
                  $typevalue = '';
                  $defaultValue = ($field["default"] != '')?$field["default"]:'0';
                  break;
                  case 'DOUBLE':
                     $type = 'double';
                     $typevalue = '';
                     $defaultValue   = ($field["default"] != '')?$field["default"]:'0';
               case 'DOUBLE':
                  $type = 'double';
                  $typevalue = '';
                  $defaultValue = ($field["default"] != '')?$field["default"]:'0';
                  break;
                  case 'CURRENCY':
                     $type = 'double';
                     $typevalue = '';
                     $defaultValue   = ($field["default"] != '')?$field["default"]:'0';
               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';
               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';
               case 'TEXT':
                  $type = 'text';
                  $typevalue = '';
                  $defaultValue = 'NULL';
                  break;
                  case 'DATE':
                     $type = 'int64';
                     $typevalue = '';
                     $defaultValue   = ($field["default"] != '')?$field["default"]:'0';
               case 'DATE':
                  $type = 'date';
                  $typevalue = '';
                  $defaultValue = ($field["default"] != '')?$field["default"]:'0000-00-00';
                  break;
               }
               $col = array(   'action'       => 'add',
                           'name'         => $name,
                           'type'         => $type,
                           'typeValue'      => $typeValue,
                           'defaultValue'   => $defaultValue,
                           'notNull'      => true
                           );
               $col = array( 'action'   => 'add',
                  'name'   => $name,
                  'type'   => $type,
                  'typeValue'  => $typeValue,
                  'defaultValue' => $defaultValue,
                  'notNull'  => true
               );
               $columns[] = $col;
            }
         }
      $app->db->createTable($formDef["db_table"],$columns);
         $app->db->createTable($formDef["db_table"], $columns);
      }
      function lng_add($lang,$formDef) {
      global $go_api, $go_info,$conf;
   }
   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);
         include $lng_file;
      } else {
         $wb = array();
      }
      $wb_out = array_merge($lang,$wb);
      $wb_out = array_merge($lang, $wb);
      if(is_array($wb_out)) {
         $fp = fopen ($lng_file, "w");
         fwrite($fp,"<?php\r\n");
         $fp = fopen($lng_file, "w");
         fwrite($fp, "<?php\n");
         foreach($wb_out as $key => $val) {
            $new_line = '$wb["'.$key.'"] = '."'$val';\r\n";
            fwrite($fp,$new_line);
            $new_line = '$wb["'.$key.'"] = '."'$val';\n";
            fwrite($fp, $new_line);
         }
         fwrite($fp,"?>");
         fwrite($fp, "?>");
         fclose($fp);
      }
   }
}
?>
?>