setPageNameIndex (BX_PAGE_DEFAULT);
$oTemplate->setPageHeader ("Sample Form Object");
$oTemplate->setPageContent ('page_main_code', PageCompMainCode());
$oTemplate->getPageCode();
/**
* page code function
*/
function PageCompMainCode()
{
// get database object
$oDb = BxDolDb::getInstance();
// get id of edited data
$iEditId = bx_process_input(bx_get('id'), BX_DATA_INT);
// display existing data
ob_start();
echo 'Add new or edit:
';
$a = $oDb->getAllWithKey("SELECT * FROM `sample_input_types`", 'id');
foreach ($a as $r) {
if ($iEditId == $r['id'])
echo $r['text'] . '
'; // currently edited data
else
echo '' . $r['text'] . '
'; // data with link to edit it
}
$ss = ob_get_clean();
ob_start();
if ($iEditId) {
// display edit form
$oForm = BxDolForm::getObjectInstance('sample_form_objects', 'sample_form_objects_edit'); // get form instance for specified form object and display
if (!$oForm)
die('"sample_form_objects_edit" form object or "sample_form_objects_edit" display is not defined');
$oForm->initChecker($a[$iEditId]); // init form checker with edited data
if ($oForm->isSubmittedAndValid()) {
if ($oForm->update ($iEditId)) // update database
echo MsgBox('Data has been updated');
else
echo MsgBox('Data update failed');
} else {
echo $oForm->getCode(); // display form
}
} else {
// display add form
$oForm = BxDolForm::getObjectInstance('sample_form_objects', 'sample_form_objects_add'); // get form instance for specified form object and display
if (!$oForm)
die('"sample_form_objects_add" form object or "sample_form_objects_add" display is not defined');
$oForm->initChecker(); // init form checker witout any data - adding new record
if ($oForm->isSubmittedAndValid()) {
if ($oForm->insert ()) // add new record to the database
echo MsgBox('Data has been added');
else
echo MsgBox('Data add failed');
} else {
echo $oForm->getCode(); // display form
}
}
$s = ob_get_clean();
return DesignBoxContent("Sample Form Object", $ss, BX_DB_PADDING_DEF) . DesignBoxContent($iEditId ? "Edit" : "Add New", $s, BX_DB_PADDING_DEF);
}
/** @} */