BxDolFormNested.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /**
  3. * @package Dolphin Core
  4. * @copyright Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  5. * @license CC-BY - http://creativecommons.org/licenses/by/3.0/
  6. */
  7. defined('BX_DOL') or die('hack attempt');
  8. bx_import('BxTemplFormView');
  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. * Constructor
  17. * @param $sName the name of form field from main form, where this nested form is inserted.
  18. * @param $aForm form array, actually only form inout are needed, all other attributes are taken from parent form automatically.
  19. * @param $sSubmitName main form submit_name; field name of submit form input to determine if form is submitted or not.
  20. * @param $oTemplate optional template object
  21. */
  22. function BxDolFormNested($sName, $aForm, $sSubmitName = false, $oTemplate = false) {
  23. if (!isset($aForm['params']['nested_form_template']) || !$aForm['params']['nested_form_template'])
  24. $aForm['params']['nested_form_template'] = 'uploader_nested_form_wrapper.html';
  25. $aForm['form_attrs']['id'] = $sName . '_{file_id}';
  26. $aForm['form_attrs']['method'] = 'specific';
  27. $aForm['params']['remove_form'] = true;
  28. $aForm['params']['csrf']['disable'] = true;
  29. if ($sSubmitName)
  30. $aForm['params']['db']['submit_name'] = $sSubmitName;
  31. if (!isset($aForm['inputs'][$sName])) {
  32. $aForm['inputs'][$sName] = array(
  33. 'type' => 'hidden',
  34. 'name' => $sName . '[]',
  35. 'value' => '{file_id}',
  36. );
  37. }
  38. parent::BxTemplFormView($aForm, $oTemplate);
  39. }
  40. function genForm() {
  41. $sNestedForm = parent::genForm();
  42. $a = array (
  43. 'nested_form' => $sNestedForm,
  44. );
  45. return $this->oTemplate->parseHtmlByName($this->aParams['nested_form_template'], $a);
  46. }
  47. }