Пример #1
0
 /**
  * Renders the forms of a container.
  *
  * @param WizardContainer $container
  * @param string $layout
  * @param array $parameter
  * @return string
  */
 public function render(WizardContainer $container, $layout = Form::LAYOUT_HORIZONTAL, $parameter = array())
 {
     $content = '';
     $content .= $container->renderPre($this->getView());
     $tabsNav = '';
     $tabsContent = '';
     $containerParams = ['finish_label' => 'Finish', 'finish_href' => 'javascript:;', 'finish_enabled' => true];
     if (isset($parameter['wizard'])) {
         $containerParams = array_merge($containerParams, $parameter['wizard']);
         unset($parameter['wizard']);
     }
     $translate = $this->getView()->plugin('translate');
     $formContainer = $this->getView()->plugin('formcontainer');
     if ($container instanceof ViewPartialProviderInterface) {
         return $this->getView()->partial($container->getViewPartial(), array('element' => $container));
     }
     $containerId = $container->getAttribute('id');
     if (!$containerId) {
         $containerId = 'wizardcontainer-' . strtolower(str_replace('\\', '-', get_class($container)));
     }
     foreach ($container as $tabElement) {
         $tabId = $containerId . '-' . strtolower($tabElement->getName());
         $tabsNav .= '<li><a data-toggle="tab" href="#' . $tabId . '">' . $translate($tabElement->getLabel()) . '</a></li>';
         $tabsContent .= '<div class="tab-pane" id="' . $tabId . '">' . $formContainer($tabElement, $layout, $parameter) . '</div>';
     }
     $content .= '<div class="wizard-container" id="' . $containerId . '">' . '<ul>' . $tabsNav . '</ul>' . '<div class="tab-content">' . $tabsContent . '</div>' . '<ul class="pager wizard">' . '<li class="previous"><a href="javascript:;">&larr; ' . $translate('previous') . '</a></li>' . '<li class="next"><a href="javascript:;">' . $translate('Next') . ' &rarr;</a></li>' . '<li class="finish' . ($containerParams['finish_enabled'] ? '' : ' disabled') . '">' . (false !== $containerParams['finish_label'] ? '<a class="pull-right" href="' . $containerParams['finish_href'] . '">' . $translate($containerParams['finish_label']) . ' &bull;</a>' : '') . '</li></div>';
     $content .= $container->renderPost($this->getView());
     return $content;
 }