ftimme
2012-11-14 aa78fde6a92f66b84d626e114d8b54a5fb6ece0c
interface/lib/classes/tform_tpl_generator.inc.php
@@ -1,7 +1,7 @@
<?php
/*
Copyright (c) 2005, Till Brehm, projektfarm Gmbh
Copyright (c) 2007, Till Brehm, projektfarm Gmbh
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
@@ -28,7 +28,6 @@
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
class tform_tpl_generator {
   
   function buildHTML($formDef,$tab) {
@@ -37,108 +36,118 @@
      
      $module = $_SESSION["s"]["module"]["name"];
      
      $html = '<table width="500" border="0" cellspacing="0" cellpadding="2">';
      $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 .= "
  <tr>
    <td class=\"frmText11\">{tmpl_var name='".$key."_txt'}:</td>
    <td class=\"frmText11\"><input name=\"".$key."\" type=\"text\" class=\"text\" value=\"{tmpl_var name='".$key."'}\" size=\"".$field['width']."\" maxlength=\"".$field['maxlength']."\"></td>
  </tr>";
      <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 .= "
  <tr>
    <td class=\"frmText11\">{tmpl_var name='".$key."_txt'}:</td>
    <td class=\"frmText11\"><textarea name='$key' cols='".$field['cols']."' rows='".$field['rows']."'>{tmpl_var name='".$key."'}</textarea></td>
  </tr>";
      <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 .= "
  <tr>
    <td class=\"frmText11\">{tmpl_var name='".$key."_txt'}:</td>
    <td class=\"frmText11\">
      <select name=\"".$key."\" class=\"text\">
         {tmpl_var name='".$key."'}
      </select>
   </td>
  </tr>";
               $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 .= "
  <tr>
    <td class=\"frmText11\">{tmpl_var name='".$key."_txt'}:</td>
    <td class=\"frmText11\">
      <select name=\"".$key."\" class=\"text\" size=\"".$field['rows']."\" multiple>
         {tmpl_var name='".$key."'}
      </select>
   </td>
  </tr>";
               $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 .= "
  <tr>
    <td class=\"frmText11\">{tmpl_var name='".$key."_txt'}:</td>
    <td class=\"frmText11\"><input name=\"".$key."\" type=\"password\" class=\"text\" value=\"{tmpl_var name='".$key."'}\" size=\"".$field['width']."\" maxlength=\"".$field['maxlength']."\"></td>
  </tr>";
               $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 .= "
  <tr>
    <td class=\"frmText11\">{tmpl_var name='".$key."_txt'}:</td>
    <td class=\"frmText11\">{tmpl_var name='".$key."'}</td>
  </tr>";
               $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 .= "
  <tr>
    <td class=\"frmText11\">{tmpl_var name='".$key."_txt'}:</td>
    <td class=\"frmText11\">{tmpl_var name='".$key."'}</td>
  </tr>";
               $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 .= "
  <tr>
    <td class=\"frmText11\">{tmpl_var name='".$key."_txt'}:</td>
    <td class=\"frmText11\">{tmpl_var name='".$key."'}</td>
  </tr>";
               $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
         // Language File Eintrag für "Feld-Titel" anlegen
         $lang[$key."_txt"] = $key;
         
         // language File Eintrag, für error-Text anlegen
         if($field["errmsg"] != '') {
         // language File Eintrag, für error-Text anlegen
         if(isset($field["errmsg"]) && $field["errmsg"] != '') {
            $errmsg = $field["errmsg"];
            $lang[$errmsg] = $errmsg;
         }
         
      }
      
      $html .= "  <tr>
    <td class=\"frmText11\">&nbsp;</td>
    <td class=\"frmText11\">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name=\"btn_save\" type=\"button\" class=\"button\" value=\"{tmpl_var name='btn_save_txt'}\" onClick=\"submitForm('pageForm','".$module."/".$formDef["action"]."');\"><div class=\"buttonEnding\"></div>&nbsp;
      <input name=\"btn_cancel\" type=\"button\" class=\"button\" value=\"{tmpl_var name='btn_cancel_txt'}\" onClick=\"loadContent('".$module."/".$formDef["list_default"]."');\"><div class=\"buttonEnding\"></div>
    </td>
  </tr>";
      $lang['btn_save_txt'] = "Save";
      $lang['btn_cancel_txt'] = "Cancel";
      $html .= "\r\n</table>\r\n<input type=\"hidden\" name=\"id\" value=\"{tmpl_var name='id'}\">";
      $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)";
           print "Cannot open file (".$formDef['tabs'][$tab]['template'].")";
           exit; 
         } 
 
@@ -148,10 +157,9 @@
      }
      fclose($handle);
      
      // speichere language Datei
      $this->lng_add($lang,$formDef);
      
      // überprüfe, ob es die Tabelle schon gibt,
      // überprüfe, ob es die Tabelle schon gibt,
      // ansonsten wird sie angelegt
      $tables = $app->db->getTables();
      
@@ -160,7 +168,7 @@
         
         $columns = array();
         
         // füge ID Feld hinzu
         // füge ID Feld hinzu
         $col = array(   'action'       => 'add',
                     'name'         => $formDef["db_table_idx"],
                     'type'         => 'int64',
@@ -285,7 +293,7 @@
      $app->db->createTable($formDef["db_table"],$columns);
      
      }
    }
   }
   
   function lng_add($lang,$formDef) {
      global $go_api, $go_info,$conf;
@@ -301,9 +309,9 @@
      
      if(is_array($wb_out)) {
         $fp = fopen ($lng_file, "w");
         fwrite($fp,"<?php\r\n");
         fwrite($fp,"<?php\n");
         foreach($wb_out as $key => $val) {
            $new_line = '$wb["'.$key.'"] = '."'$val';\r\n";
            $new_line = '$wb["'.$key.'"] = '."'$val';\n";
            fwrite($fp,$new_line);
            
         }