| 
<?phpdeclare(strict_types=1);
 
 require_once '../autoloader.php';
 
 use SKien\Config\JSONConfig;
 use SKien\Formgenerator\ArrayFormData;
 use SKien\Formgenerator\FormGenerator;
 use SKien\Formgenerator\FormInput;
 use SKien\Formgenerator\FormFlags;
 use SKien\Formgenerator\FormSelect;
 use SKien\Formgenerator\FormStatic;
 use SKien\Formgenerator\FormDate;
 use SKien\Formgenerator\FormTime;
 use SKien\Formgenerator\FormButtonBox;
 use SKien\Formgenerator\FormCur;
 use SKien\Formgenerator\FormColor;
 use SKien\Formgenerator\FormHeader;
 use SKien\Formgenerator\FormFloat;
 use SKien\Formgenerator\FormRange;
 
 // $strTheme = './MSO-Theme/';
 $strTheme = './';
 
 $oConfig = new JSONConfig($strTheme . 'FormGenerator.json');
 
 $dtTo = new DateTime();
 $dtTo->setTimestamp(time() + 3600);
 $aData = [
 'username' => 'Stefanius',
 'strLastname' => 'Mustermann',
 'strFirstname' => 'Max',
 'strStreet' => 'Hammerstraße',
 'strPostcode' => '12345',
 'strCity' => 'Musterstadt',
 'strGender' => 'm',
 'dateDoB' => '1974-07-23',
 'timeAvailableFrom' => time(),
 'timeAvailableTo' => $dtTo,
 'fltDue' => 1904,
 'strCatColor' => '#B0BED0',
 'fltWeight' => 71.3,
 'iPriority' => 3,
 ];
 
 $aGenderSelect = ['' => '', 'männlich' => 'm', 'weiblich' => 'f', 'divers' => 'd'];
 $aCitySelect = ['München', 'Berlin', 'Köln', 'Hamburg'];
 
 $oData = new ArrayFormData($aData, ['strGender' => $aGenderSelect, 'strCity' => $aCitySelect]);
 
 $oFG = new FormGenerator($oData);
 $oFG->setConfig($oConfig);
 $oFG->setAction('formaction.php');
 $oFG->setTarget('_blank');
 // $oFG->setReadOnly(true);
 // $oFG->setDebugMode(true);
 
 $oFG->setColWidth([20, 80], '%');
 
 $oFG->add(new FormHeader('Personnel data sheet', 1));
 
 $oFS = $oFG->addFieldSet('Name');
 $oFL = $oFS->addLine('Lastname:');
 $oInput = new FormInput('strLastname', '100%', FormFlags::MANDATORY);
 $oInput->setMaxLength(50);
 $oFL->add($oInput);
 $oFL = $oFS->addLine('Firstname:');
 $oFL->add(new FormInput('strFirstname', '100%', 0, 50));
 $oFS = $oFG->addFieldSet('Address');
 $oFL = $oFS->addLine('Region:');
 $oEdit = new FormInput('strRegion', '100%');
 $oFL->add($oEdit);
 $oEdit->setPlaceholder('enter Region');
 $oFL = $oFS->addLine('Street:');
 $oFL->add(new FormInput('strStreet', '100%'));
 $oFL = $oFS->addLine('Postcode, City:');
 $oFL->setColWidth([20, 20, 60], '%');
 $oFL->add(new FormInput('strPostcode', '90%'));
 $oFL->add(new FormInput('strCity', '100%'));
 $oFS = $oFG->addFieldSet('some personal Data');
 $oFS->setColWidth([20, 30, 20, 30], '%');
 $oFL = $oFS->addLine();
 $oFL->setColWidth([0, 100], '%');
 $oFL->add(new FormStatic('And here are some informations...', FormFlags::INFO | FormFlags::BOLD));
 $oFL = $oFS->addLine('Gender:');
 $oFL->add(new FormSelect('strGender', 1, FormFlags::MANDATORY));
 $oFL->add(new FormStatic('Date of Birth:'));
 $oFL->add(new FormDate('dateDoB', FormFlags::NO_ZERO | FormFlags::ADD_DATE_PICKER));
 $oFL = $oFS->addLine('Available from:');
 $oFL->add(new FormTime('timeAvailableFrom', FormFlags::ADD_TIME_PICKER));
 $oFL->add(new FormStatic('to:'));
 $oFL->add(new FormTime('timeAvailableTo', FormFlags::ADD_TIME_PICKER));
 $oFL = $oFS->addLine('Member due:');
 $oFL->add(new FormCur('fltDue', 10, FormFlags::ADD_CUR));
 $oFL->add(new FormStatic('extra fee:'));
 $oFL->add(new FormCur('fltExtra', 10, FormFlags::ADD_CUR | FormFlags::NO_ZERO));
 $oFL = $oFS->addLine('Weight:');
 $oFloat = new FormFloat('fltWeight', 10, 1);
 $oFL->add($oFloat);
 $oFloat->setSuffix('kg');
 $oFL = $oFS->addLine('Priority:');
 // $oFL->add(new FormInt('iPriority', 8));
 $oFL->add(new FormRange('iPriority', '70%', 1, 10, FormFlags::SHOW_VALUE));
 $oFL->add(new FormStatic('category:'));
 $oFL->add(new FormColor('strCatColor'));
 $oFL = $oFS->addLine('Resumé:');
 $oFL->setColWidth([20, 80], '%');
 $oEdit = new FormInput('strResumeFile', 'calc(100% - 45px)', FormFlags::BROWSE_SERVER | FormFlags::READ_ONLY);
 $oEdit->setExpandFolder('files/');
 $oFL->add($oEdit);
 $oFS = $oFG->addFieldSet('internal processing');
 $oFL = $oFS->addLine('Validated:');
 $oFL->add(new FormInput('strValidated', 30, FormFlags::ADD_DTU | FormFlags::READ_ONLY));
 
 $oFG->add(new FormButtonBox(FormButtonBox::SAVE | FormButtonBox::DISCARD, FormFlags::ALIGN_RIGHT));
 
 // generate HTML-markup and JS configuration data
 $strFormHTML = $oFG->getForm();
 $strStyleFromPHP = $oFG->getStyle();
 $strConfigFromPHP = $oFG->getScript();
 ?>
 <html>
 <head>
 <link type="text/css" rel="stylesheet" href="<?= $strTheme; ?>FormGenerator.css">
 <style>
 body
 {
 background-color: #777;
 width: 100%;
 padding-top: 20px;
 }
 
 <?php echo $strStyleFromPHP; ?>
 </style>
 <script type="text/javascript" src="../script/FormGenerator.js"></script>
 <script>
 <?php echo $strConfigFromPHP; ?>
 </script>
 </head>
 <body>
 <div style="width:600px; margin: 0px auto; background-color: transparent;">
 <?php echo $strFormHTML; ?>
 </div>
 </body>
 </html>
 
 |