form_objects.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. /**
  3. * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  4. * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  5. *
  6. * @defgroup DolphinCore 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. bx_import('BxDolLanguages');
  20. bx_import('BxDolForm');
  21. bx_import('BxDolTemplate');
  22. $oTemplate = BxDolTemplate::getInstance();
  23. $oTemplate->setPageNameIndex (BX_PAGE_DEFAULT);
  24. $oTemplate->setPageHeader ("Sample Form Object");
  25. $oTemplate->setPageContent ('page_main_code', PageCompMainCode());
  26. $oTemplate->getPageCode();
  27. /**
  28. * page code function
  29. */
  30. function PageCompMainCode() {
  31. // get database object
  32. $oDb = BxDolDb::getInstance();
  33. // get id of edited data
  34. $iEditId = bx_process_input(bx_get('id'), BX_DATA_INT);
  35. // display existing data
  36. ob_start();
  37. echo '<a href="' . BX_DOL_URL_ROOT . 'samples/form_objects.php">Add new</a> or edit:<hr class="bx-def-hr" />';
  38. $a = $oDb->getAllWithKey("SELECT * FROM `sample_input_types`", 'id');
  39. foreach ($a as $r) {
  40. if ($iEditId == $r['id'])
  41. echo $r['text'] . '<br />'; // currently edited data
  42. else
  43. echo '<a href="' . BX_DOL_URL_ROOT . 'samples/form_objects.php?id=' . $r['id'] . '">' . $r['text'] . '</a><br />'; // data with link to edit it
  44. }
  45. $ss = ob_get_clean();
  46. ob_start();
  47. if ($iEditId) {
  48. // display edit form
  49. $oForm = BxDolForm::getObjectInstance('sample_form_objects', 'sample_form_objects_edit'); // get form instance for specified form object and display
  50. if (!$oForm)
  51. die('"sample_form_objects_edit" form object or "sample_form_objects_edit" display is not defined');
  52. $oForm->initChecker($a[$iEditId]); // init form checker with edited data
  53. if ($oForm->isSubmittedAndValid()) {
  54. if ($oForm->update ($iEditId)) // update database
  55. echo MsgBox('Data has been updated');
  56. else
  57. echo MsgBox('Data update failed');
  58. } else {
  59. echo $oForm->getCode(); // display form
  60. }
  61. } else {
  62. // display add form
  63. $oForm = BxDolForm::getObjectInstance('sample_form_objects', 'sample_form_objects_add'); // get form instance for specified form object and display
  64. if (!$oForm)
  65. die('"sample_form_objects_add" form object or "sample_form_objects_add" display is not defined');
  66. $oForm->initChecker(); // init form checker witout any data - adding new record
  67. if ($oForm->isSubmittedAndValid()) {
  68. if ($oForm->insert ()) // add new record to the database
  69. echo MsgBox('Data has been added');
  70. else
  71. echo MsgBox('Data add failed');
  72. } else {
  73. echo $oForm->getCode(); // display form
  74. }
  75. }
  76. $s = ob_get_clean();
  77. return DesignBoxContent("Sample Form Object", $ss, BX_DB_PADDING_DEF) . DesignBoxContent($iEditId ? "Edit" : "Add New", $s, BX_DB_PADDING_DEF);
  78. }
  79. /** @} */