tbrehm
2008-12-12 ec09b18c9c44f85ceb6d9e7588a03a221cd1193f
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,121 @@
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">';
      $module = $_SESSION["s"]["module"]["name"];
      $html = '<h2><tmpl_var name="list_head_txt"></h2>
<div class="panel panel_'.$formDef['name'].'">
  <div class="pnl_formsarea">
    <fieldset id="wf_area_'.$formDef['name'].'"><legend>'.$formDef['tabs'][$tab]['title'].'</legend>';
      $lang = array();
      
      foreach($formDef['tabs'][$tab]['fields'] as $key => $field) {
         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>";
               $html .= "\r\n      <span class=\"wf_oneField\">
        <label for=\"".$key."\" class=\"wf_preField\">{tmpl_var name='".$key."_txt'}</label>
        <input type=\"text\" id=\"".$key."\" name=\"".$key."\" value=\"{tmpl_var name='".$key."'}\" size=\"".$field['width']."\" maxlength=\"".$field['maxlength']."\"";
          if ($field['required'] == true ) {
                 $html .= " class=\"wf_required\"><span class=\"wf_reqMark\">*</span><br />";
          } else {
                  $html .= ">";
          }
               $html .= "\r\n      </span>";
            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>";
               $html .= "\r\n      <span class=\"wf_oneField\">
        <label for=\"".$key."\" class=\"wf_preField\">{tmpl_var name='".$key."_txt'}</label>
        <textarea id=\"".$key."\" name=\"".$key."\" cols='".$field['cols']."' rows='".$field['rows']."'";
          if ($field['required'] == true ) {
                 $html .= " class=\"wf_required\">";
          } else {
                  $html .= ">";
          }
               $html .= "{tmpl_var name='".$key."'}</textarea>";
          if ($field['required'] == true ) {
                 $html .= "<span class=\"wf_reqMark\">*</span><br />";
          }
               $html .= "\r\n      </span>";
            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 .= "\r\n      <span class=\"wf_oneField\">
        <label for=\"".$key."\" class=\"wf_preField\">{tmpl_var name='".$key."_txt'}</label>
        <select id=\"".$key."\" name=\"".$key."\"";
          if ($field['required'] == true ) {
                 $html .= " class=\"wf_required\">";
          } else {
                  $html .= ">";
          }
               $html .= "{tmpl_var name='".$key."'}</select>";
          if ($field['required'] == true ) {
                 $html .= "<span class=\"wf_reqMark\">*</span><br />";
          }
               $html .= "\r\n      </span>";
            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 .= "\r\n      <span class=\"wf_oneField\">
        <label for=\"".$key."\" class=\"wf_preField\">{tmpl_var name='".$key."_txt'}</label>
        <select multiple id=\"".$key."\" name=\"".$key."\"";
          if ($field['required'] == true ) {
                 $html .= " class=\"wf_required\">";
          } else {
                  $html .= ">";
          }
               $html .= "{tmpl_var name='".$key."'}</select>";
          if ($field['required'] == true ) {
                 $html .= "<span class=\"wf_reqMark\">*</span><br />";
          }
               $html .= "\r\n      </span>";
            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 .= "\r\n      <span class=\"wf_oneField\">
        <label for=\"".$key."\" class=\"wf_preField\">{tmpl_var name='".$key."_txt'}</label>
        <input type=\"password\" id=\"".$key."\" name=\"".$key."\" value=\"{tmpl_var name='".$key."'}\" size=\"".$field['width']."\" maxlength=\"".$field['maxlength']."\"";
          if ($field['required'] == true ) {
                 $html .= " class=\"wf_required\"><span class=\"wf_reqMark\">*</span><br />";
          } else {
                  $html .= ">";
          }
               $html .= "\r\n      </span>";
            break;
            case 'CHECKBOX':
            $html .= "
  <tr>
    <td class=\"frmText11\">{tmpl_var name='".$key."_txt'}:</td>
    <td class=\"frmText11\">{tmpl_var name='".$key."'}</td>
  </tr>";
               $html .= "\r\n      <span class=\"wf_oneField\">
        <label for=\"".$key."\" class=\"wf_preField\">{tmpl_var name='".$key."_txt'}</label>";
          if ($field['required'] == true ) {
                 $html .= "                    <span class=\"wf_required\">
                      {tmpl_var name='".$key."'}
                    </span>
                    <span class=\"wf_reqMark\">*</span><br />";
          } else {
                 $html .= "                    <span class=\"\">
                      {tmpl_var name='".$key."'}
                    </span>";
          }
          $html .= "\r\n      </span>";
            break;
            case 'CHECKBOXARRAY':
            $html .= "
  <tr>
    <td class=\"frmText11\">{tmpl_var name='".$key."_txt'}:</td>
    <td class=\"frmText11\">{tmpl_var name='".$key."'}</td>
  </tr>";
               $html .= "\r\n      <span class=\"wf_oneField\">
        <span class=\"wf_label wf_preField\">{tmpl_var name='".$key."_txt'}</span>";
                 $html .= "                    <fieldset>
                      {tmpl_var name='".$key."'}
                    </fieldset>";
            $html .= "\r\n      </span>";
            break;
            case 'RADIO':
            $html .= "
  <tr>
    <td class=\"frmText11\">{tmpl_var name='".$key."_txt'}:</td>
    <td class=\"frmText11\">{tmpl_var name='".$key."'}</td>
  </tr>";
               $html .= "      <span class=\"wf_oneField\">
        <span class=\"wf_label wf_preField\">{tmpl_var name='".$key."_txt'}</span>";
                 $html .= "                    <fieldset>
                      {tmpl_var name='".$key."'}
                    </fieldset>";
            $html .= "\r\n      </span>";
            break;
         }
         
@@ -110,30 +150,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=\"wf_actions 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 +183,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 +320,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);
      }
   }
}
?>