<?php
declare(strict_types=1);
require_once '../autoloader.php';
use SKien\Formgenerator\FormGenerator;
use SKien\Formgenerator\FormFlags;
use SKien\Config\JSONConfig;
use SKien\Formgenerator\FormButtonBox;
use SKien\Formgenerator\FormHeader;
use SKien\Formgenerator\FormTextArea;
use SKien\Formgenerator\FormSelect;
use SKien\Formgenerator\ArrayFormData;
$aData = [];
$aPlaceholderSelect = ['Firstname' => '{{FN}}', 'Lastname' => '{{LN}}', 'Street' => '{{STR}}', 'Postcode' => '{{PC}}', 'City' => '{{CITY}}'];
$oData = new ArrayFormData($aData, ['strPlaceholder' => $aPlaceholderSelect]);
$strTheme = './MSO-Theme/';
//$strTheme = './';
$oConfig = new JSONConfig($strTheme . 'FormGenerator.json');
$oFG = new FormGenerator($oData);
$oFG->setConfig($oConfig);
$oFG->setColWidth([100], '%');
$oFG->add(new FormHeader('Textarea and a Selectbutton', 1));
$oFS = $oFG->addFieldSet('');
$oFL = $oFS->addLine('You can insert Placeholders for the Contact:');
$oFL->setColWidth([80, 20]);
$oSelBtn = new FormSelect('strPlaceholder', 1, FormFlags::SELECT_BTN);
$oSelBtn->setSelectBtnText('insert Placeholder');
$oSelBtn->addAttribute('onchange', 'insertPlaceholde(this);');
$oFL->add($oSelBtn);
$oFS->add(new FormTextArea('strText', 80, 20, '100%'));
$oBtnBox = new FormButtonBox(FormButtonBox::SAVE_CANCEL, FormFlags::ALIGN_RIGHT);
$oFG->add($oBtnBox);
$oBtnBox->addButton('Vorschau', 'btnPreview', FormButtonBox::FIRST);
// 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; ?>
function insertPlaceholde(list)
{
var oTextarea = document.getElementById( 'strText' );
var strPlaceholder = list.value;
if (oTextarea != null) {
// first set Focus to textarea
oTextarea.focus();
// different behavior from IE, Firefox, ...
if (typeof document.selection != 'undefined') {
// ... IE
var range = document.selection.createRange();
range.text = strPlaceholder;
}
else if (typeof oTextarea.selectionStart != 'undefined') {
// Gecko...
var start = oTextarea.selectionStart;
var end = oTextarea.selectionEnd;
oTextarea.value = oTextarea.value.substr(0, start) + strPlaceholder + oTextarea.value.substr(end);
// SetCursor behind Marker
oTextarea.selectionStart = start + strPlaceholder.length;
oTextarea.selectionEnd = oTextarea.selectionStart;
}
}
list.selectedIndex = -1;
}
</script>
</head>
<body>
<div style="width:700px; margin: 0px auto; background-color: transparent;">
<?php echo $strFormHTML; ?>
</div>
</body>
</html>
|