tbrehm
2009-11-18 80e7b0d7d17b0e9581fa56be484b8772d82261de
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,81 +28,94 @@
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
class tform_tpl_generator {
   
   function buildHTML($formDef,$tab) {
      
      global $app;
      
      $html = '<table width="500" border="0" cellspacing="0" cellpadding="2">';
      $lang = array();
      $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 .= "
  <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;
         }
         
@@ -110,30 +123,28 @@
         $lang[$key."_txt"] = $key;
         
         // language File Eintrag, für error-Text anlegen
         if($field["errmsg"] != '') {
         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=\"submit\" class=\"button\" value=\"{tmpl_var name='btn_save_txt'}\">
      <input name=\"btn_cancel\" type=\"button\" class=\"button\" value=\"{tmpl_var name='btn_cancel_txt'}\" onClick=\"self.location.href='".$formDef["list_default"]."';\">
    </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)"; 
@@ -145,9 +156,6 @@
         exit; 
      }
      fclose($handle);
      // speichere language Datei
      $this->lng_add($lang,$formDef);
      
      // überprüfe, ob es die Tabelle schon gibt,
      // ansonsten wird sie angelegt
@@ -285,30 +293,6 @@
      }
    }
   
   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($wb,$lang);
      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);
      }
   }
}
?>