BxDolFormNested.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php defined('BX_DOL') or die('hack attempt');
  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 Dolphin Core
  7. * @{
  8. */
  9. bx_import('BxTemplFormView');
  10. /**
  11. * Nested form. It is used in file uploaders to show uploaded file as nested form.
  12. * @see BxDolUploader
  13. * @see BxDolForm
  14. */
  15. class BxDolFormNested extends BxTemplFormView {
  16. /**
  17. * Constructor
  18. * @param $sName the name of form field from main form, where this nested form is inserted.
  19. * @param $aForm form array, actually only form inout are needed, all other attributes are taken from parent form automatically.
  20. * @param $sSubmitName main form submit_name; field name of submit form input to determine if form is submitted or not.
  21. * @param $oTemplate optional template object
  22. */
  23. function __construct($sName, $aForm, $sSubmitName = false, $oTemplate = false) {
  24. if (!isset($aForm['params']['nested_form_template']) || !$aForm['params']['nested_form_template'])
  25. $aForm['params']['nested_form_template'] = 'uploader_nested_form_wrapper.html';
  26. $aForm['form_attrs']['id'] = $sName . '_{file_id}';
  27. $aForm['form_attrs']['method'] = 'specific';
  28. $aForm['params']['remove_form'] = true;
  29. $aForm['params']['csrf']['disable'] = true;
  30. if ($sSubmitName)
  31. $aForm['params']['db']['submit_name'] = $sSubmitName;
  32. if (!isset($aForm['inputs'][$sName])) {
  33. $aForm['inputs'][$sName] = array(
  34. 'type' => 'hidden',
  35. 'name' => $sName . '[]',
  36. 'value' => '{file_id}',
  37. );
  38. }
  39. parent::__construct($aForm, $oTemplate);
  40. }
  41. function genForm() {
  42. $sNestedForm = parent::genForm();
  43. $a = array (
  44. 'nested_form' => $sNestedForm,
  45. );
  46. return $this->oTemplate->parseHtmlByName($this->aParams['nested_form_template'], $a);
  47. }
  48. }
  49. /** @} */