| 
<?phpdeclare(strict_types=1);
 
 require_once '../autoloader.php';
 
 use SKien\Config\JSONConfig;
 use SKien\Formgenerator\ArrayFormData;
 use SKien\Formgenerator\FormButtonBox;
 use SKien\Formgenerator\FormDate;
 use SKien\Formgenerator\FormFlags;
 use SKien\Formgenerator\FormFloat;
 use SKien\Formgenerator\FormGenerator;
 use SKien\Formgenerator\FormHeader;
 use SKien\Formgenerator\FormInput;
 use SKien\Formgenerator\FormInt;
 use SKien\Formgenerator\FormSelect;
 use SKien\Formgenerator\FormStatic;
 
 // defining data array for test purposes
 $aData = [
 'ID' => 24,
 'strLastname' => 'Johnson',
 'strFirstname' => 'Dwayne ',
 'strNickname' => 'the Rock',
 'strGender' => 'm',
 'dateDoB' => '1972-05-02',
 'iHeight' => 196,
 'fltWeight' => 116.0,
 ];
 
 $oData = new ArrayFormData($aData);
 
 $oFG = new FormGenerator($oData);
 
 // load the configuration to use
 $oConfig = new JSONConfig('./MSO-Theme/FormGenerator.json');
 $oFG->setConfig($oConfig);
 
 // just a script that displays all posted data
 $oFG->setAction('formaction.php');
 $oFG->setTarget('_blank');
 
 //$oFG->setColWidth([20, 80], '%');
 $oFG->setColWidth([100, 100], '%');
 
 $oFG->add(new FormInput('ID', 0, FormFlags::HIDDEN));
 
 $oFG->add(new FormHeader('Quick Start Example', 1));
 
 $oFS = $oFG->addFieldSet('Name');
 $oFL = $oFS->addLine('Lastname:');
 $oFL->add(new FormInput('strLastname', '100%', FormFlags::MANDATORY, 50));
 $oFL = $oFS->addLine('Firstname:');
 $oFL->add(new FormInput('strFirstname', '100%', 0, 50));
 $oFL = $oFS->addLine('Nickname:');
 $oFL->add(new FormInput('strNickname', '100%', 0, 50));
 
 $oFS = $oFG->addFieldSet('Personal Data');
 //$oFS->setColWidth([20, 25, 20, 35], '%');
 $oFS->setColWidth([35, 65, 35, 65], '%');
 $oFL = $oFS->addLine('Gender:');
 $oCtrl = new FormSelect('strGender', 1, FormFlags::MANDATORY);
 $oCtrl->setSelectOptions(['' => '', 'male' => 'm', 'female' => 'f', 'diverse' => 'd']);
 $oFL->add($oCtrl);
 $oFL->add(new FormStatic('Birthday:'));
 $oFL->add(new FormDate('dateDoB', FormFlags::NO_ZERO | FormFlags::ADD_DATE_PICKER));
 
 $oFL = $oFS->addLine('Height:');
 $oCtrl = new FormInt('iHeight', 4);
 $oCtrl->setSuffix('cm');
 $oFL->add($oCtrl);
 $oFL->add(new FormStatic('Weight:'));
 $oCtrl = new FormFloat('fltWeight', 5, 1);
 $oCtrl->setSuffix('kg');
 $oFL->add($oCtrl);
 
 $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>
 <title>Quick Start Example</title>
 <link type="text/css" rel="stylesheet" href="./MSO-Theme/FormGenerator.css">
 <style>
 <?php echo $strStyleFromPHP; ?>
 </style>
 
 <script type="text/javascript" src="../script/FormGenerator.js"></script>
 <script>
 <?php echo $strConfigFromPHP; ?>
 </script>
 </head>
 <body style="background-color: #777; width: 100%; padding-top: 20px;">
 <div style="width:320px; margin: 0px auto; background-color: transparent;">
 <?php echo $strFormHTML; ?>
 </div>
 </body>
 </html>
 
 |