Example #1
0
 /**
  * Renders form body.
  * @return string
  */
 public function renderBody()
 {
     $s = $remains = '';
     $defaultContainer = $this->getWrapper('group container');
     $translator = $this->form->getTranslator();
     foreach ($this->form->getGroups() as $group) {
         if (!$group->getControls() || !$group->getOption('visual')) {
             continue;
         }
         $container = $group->getOption('container', $defaultContainer);
         $container = $container instanceof Html ? clone $container : Html::el($container);
         $s .= "\n" . $container->startTag();
         $text = $group->getOption('label');
         if ($text instanceof Html) {
             $s .= $text;
         } elseif (is_string($text)) {
             if ($translator !== NULL) {
                 $text = $translator->translate($text);
             }
             $s .= "\n" . $this->getWrapper('group label')->setText($text) . "\n";
         }
         $text = $group->getOption('description');
         if ($text instanceof Html) {
             $s .= $text;
         } elseif (is_string($text)) {
             if ($translator !== NULL) {
                 $text = $translator->translate($text);
             }
             $s .= $this->getWrapper('group description')->setText($text) . "\n";
         }
         $s .= $this->renderControls($group);
         $remains = $container->endTag() . "\n" . $remains;
         if (!$group->getOption('embedNext')) {
             $s .= $remains;
             $remains = '';
         }
     }
     $s .= $remains . $this->renderControls($this->form);
     $container = $this->getWrapper('form container');
     $container->setHtml($s);
     return $container->render(0);
 }