diff --git a/src/TwbBundle/Form/View/Helper/TwbBundleForm.php b/src/TwbBundle/Form/View/Helper/TwbBundleForm.php index 17c27a0..05ac0c4 100644 --- a/src/TwbBundle/Form/View/Helper/TwbBundleForm.php +++ b/src/TwbBundle/Form/View/Helper/TwbBundleForm.php @@ -61,9 +61,14 @@ public function render(FormInterface $oForm, $sFormLayout = self::LAYOUT_HORIZON $bHasColumnSizes = false; $sFormContent = ''; $oRenderer = $this->getView(); + $rowsOpened = 0; foreach ($oForm as $oElement) { $aOptions = $oElement->getOptions(); - if (!$bHasColumnSizes && !empty($aOptions['column-size'])) { + if (isset($aOptions['twb-row-open']) && $aOptions['twb-row-open']) { + $sFormContent .= '
'; + $rowsOpened++; + } + if (!$bHasColumnSizes && !empty($aOptions['column-size']) && $rowsOpened === 0) { $bHasColumnSizes = true; } //Define layout option to form elements if not already defined @@ -72,6 +77,10 @@ public function render(FormInterface $oForm, $sFormLayout = self::LAYOUT_HORIZON $oElement->setOptions($aOptions); } $sFormContent .= $oElement instanceof FieldsetInterface ? $oRenderer->formCollection($oElement) : $oRenderer->formRow($oElement); + if (isset($aOptions['twb-row-close']) && $aOptions['twb-row-close']) { + $sFormContent .= '
'; + $rowsOpened--; + } } if ($bHasColumnSizes && $sFormLayout !== self::LAYOUT_HORIZONTAL) { $sFormContent = sprintf(self::$formRowFormat, $sFormContent);