BxDolFormNested.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. /**
  18. * Constructor
  19. * @param $sName the name of form field from main form, where this nested form is inserted.
  20. * @param $aForm form array, actually only form inout are needed, all other attributes are taken from parent form automatically.
  21. * @param $sSubmitName main form submit_name; field name of submit form input to determine if form is submitted or not.
  22. * @param $oTemplate optional template object
  23. */
  24. function __construct($sName, $aForm, $sSubmitName = false, $oTemplate = false)
  25. {
  26. if (!isset($aForm['params']['nested_form_template']) || !$aForm['params']['nested_form_template'])
  27. $aForm['params']['nested_form_template'] = 'uploader_nested_form_wrapper.html';
  28. $aForm['form_attrs']['id'] = $sName . '_{file_id}';
  29. $aForm['form_attrs']['method'] = 'specific';
  30. $aForm['params']['remove_form'] = true;
  31. $aForm['params']['csrf']['disable'] = true;
  32. if ($sSubmitName)
  33. $aForm['params']['db']['submit_name'] = $sSubmitName;
  34. if (!isset($aForm['inputs'][$sName])) {
  35. $aForm['inputs'][$sName] = array(
  36. 'type' => 'hidden',
  37. 'name' => $sName . '[]',
  38. 'value' => '{file_id}',
  39. );
  40. }
  41. parent::__construct($aForm, $oTemplate);
  42. }
  43. function genForm()
  44. {
  45. $sNestedForm = parent::genForm();
  46. $a = array (
  47. 'nested_form' => $sNestedForm,
  48. );
  49. return $this->oTemplate->parseHtmlByName($this->aParams['nested_form_template'], $a);
  50. }
  51. }
  52. /** @} */