form_objects.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup UnaCoreSamples Samples
  7. * @{
  8. */
  9. /**
  10. * @page samples
  11. * @section form Form
  12. */
  13. /**
  14. * Please refer to the following file for custom class and SQL dump data for this example:
  15. * @see BxSampleForm.php
  16. */
  17. require_once('./../inc/header.inc.php');
  18. require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
  19. $oTemplate = BxDolTemplate::getInstance();
  20. $oTemplate->setPageNameIndex (BX_PAGE_DEFAULT);
  21. $oTemplate->setPageHeader ("Sample Form Object");
  22. $oTemplate->setPageContent ('page_main_code', PageCompMainCode());
  23. $oTemplate->getPageCode();
  24. /**
  25. * page code function
  26. */
  27. function PageCompMainCode()
  28. {
  29. // get database object
  30. $oDb = BxDolDb::getInstance();
  31. // get id of edited data
  32. $iEditId = bx_process_input(bx_get('id'), BX_DATA_INT);
  33. // display existing data
  34. ob_start();
  35. echo '<a href="' . BX_DOL_URL_ROOT . 'samples/form_objects.php">Add new</a> or edit:<hr class="bx-def-hr" />';
  36. $a = $oDb->getAllWithKey("SELECT * FROM `sample_input_types`", 'id');
  37. foreach ($a as $r) {
  38. if ($iEditId == $r['id'])
  39. echo $r['text'] . '<br />'; // currently edited data
  40. else
  41. echo '<a href="' . BX_DOL_URL_ROOT . 'samples/form_objects.php?id=' . $r['id'] . '">' . $r['text'] . '</a><br />'; // data with link to edit it
  42. }
  43. $ss = ob_get_clean();
  44. ob_start();
  45. if ($iEditId) {
  46. // display edit form
  47. $oForm = BxDolForm::getObjectInstance('sample_form_objects', 'sample_form_objects_edit'); // get form instance for specified form object and display
  48. if (!$oForm)
  49. die('"sample_form_objects_edit" form object or "sample_form_objects_edit" display is not defined');
  50. $oForm->initChecker($a[$iEditId]); // init form checker with edited data
  51. if ($oForm->isSubmittedAndValid()) {
  52. if ($oForm->update ($iEditId)) // update database
  53. echo MsgBox('Data has been updated');
  54. else
  55. echo MsgBox('Data update failed');
  56. } else {
  57. echo $oForm->getCode(); // display form
  58. }
  59. } else {
  60. // display add form
  61. $oForm = BxDolForm::getObjectInstance('sample_form_objects', 'sample_form_objects_add'); // get form instance for specified form object and display
  62. if (!$oForm)
  63. die('"sample_form_objects_add" form object or "sample_form_objects_add" display is not defined');
  64. $oForm->initChecker(); // init form checker witout any data - adding new record
  65. if ($oForm->isSubmittedAndValid()) {
  66. if ($oForm->insert ()) // add new record to the database
  67. echo MsgBox('Data has been added');
  68. else
  69. echo MsgBox('Data add failed');
  70. } else {
  71. echo $oForm->getCode(); // display form
  72. }
  73. }
  74. $s = ob_get_clean();
  75. return DesignBoxContent("Sample Form Object", $ss, BX_DB_PADDING_DEF) . DesignBoxContent($iEditId ? "Edit" : "Add New", $s, BX_DB_PADDING_DEF);
  76. }
  77. /** @} */