BxDolFormNested.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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 TridentCore Trident Core
  7. * @{
  8. */
  9. /**
  10. * Nested form. It is used in file uploaders to show uploaded file as nested form.
  11. * @see BxDolUploader
  12. * @see BxDolForm
  13. */
  14. class BxDolFormNested extends BxTemplFormView
  15. {
  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. {
  25. if (!isset($aForm['params']['nested_form_template']) || !$aForm['params']['nested_form_template'])
  26. $aForm['params']['nested_form_template'] = 'uploader_nested_form_wrapper.html';
  27. $aForm['form_attrs']['id'] = $sName . '_{file_id}';
  28. $aForm['form_attrs']['method'] = 'specific';
  29. $aForm['params']['remove_form'] = true;
  30. $aForm['params']['csrf']['disable'] = true;
  31. if ($sSubmitName)
  32. $aForm['params']['db']['submit_name'] = $sSubmitName;
  33. if (!isset($aForm['inputs'][$sName])) {
  34. $aForm['inputs'][$sName] = array(
  35. 'type' => 'hidden',
  36. 'name' => $sName . '[]',
  37. 'value' => '{file_id}',
  38. );
  39. }
  40. parent::__construct($aForm, $oTemplate);
  41. }
  42. function genForm()
  43. {
  44. $sNestedForm = parent::genForm();
  45. $a = array (
  46. 'nested_form' => $sNestedForm,
  47. );
  48. return $this->oTemplate->parseHtmlByName($this->aParams['nested_form_template'], $a);
  49. }
  50. }
  51. /** @} */