<?php
declare(strict_types=1);
require_once '../autoloader.php';
use SKien\Config\JSONConfig;
use SKien\Formgenerator\ArrayFormData;
use SKien\Formgenerator\FormButtonBox;
use SKien\Formgenerator\FormCKEdit;
use SKien\Formgenerator\FormFlags;
use SKien\Formgenerator\FormGenerator;
use SKien\Formgenerator\FormHeader;
$strTheme = './MSO-Theme/';
// $strTheme = './';
$oConfig = new JSONConfig($strTheme . 'FormGenerator.json');
$oData = new ArrayFormData([
'strText' =>
'<h1>This is the content</h1>' . PHP_EOL .
'<p>with a little text...</p>'
]);
$oFG = new FormGenerator($oData);
$oFG->setAction('formaction.php');
$oFG->setTarget('_blank');
$oFG->setConfig($oConfig);
$oFG->add(new FormHeader('CFKEditor connected with Rich-Filemanager', 1));
$oFG->setColWidth([100], '%');
$oEditor = new FormCKEdit('strText', 20, '100%', FormFlags::SET_JSON_DATA);
$oEditor->setContentsCss('../style/FormGenerator.css');
$oEditor->setToolbar(FormCKEdit::TB_FULL | FormCKEdit::TB_SOURCE);
$oEditor->setBrowseFolderImageURL('images/news/2020-21/');
$oEditor->addCustomButton('H1-Header', 'InsertH1');
$oFG->add($oEditor);
$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();
?>
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<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; ?>
/**
* sample handler for the custom button
*/
function InsertH1(editor)
{
editor.insertHtml( '<h1>Inserted H1-Header</h1>' );
}
/**
* .. and a 'poor' preview ;-)
*/
function btnPreviewClicked()
{
let iWidth = screen.width * 0.6;
let iHeight = screen.height * 0.6;
let iLeft = (screen.width - iWidth) / 2 ;
let iTop = (screen.height - iHeight) / 2 ;
let strOptions = "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,dependent=no";
strOptions += ",width=" + parseInt(iWidth);
strOptions += ",height=" + parseInt(iHeight);
strOptions += ",left=" + parseInt(iLeft);
strOptions += ",top=" + parseInt(iTop);
var win = window.open("", "Preview", strOptions);
win.document.body.innerHTML = g_oCKEdit.oEditor.getData();
}
</script>
</head>
<body>
<div style="width:700px; margin: 0px auto; background-color: transparent;">
<?php echo $strFormHTML; ?>
</div>
</body>
</html>
|