コード例 #1
0
ファイル: AkeebaStrapper.php プロジェクト: Joal01/fof
 /**
  * Renders a raw Form and returns the corresponding HTML
  *
  * @param   Form   &$form     The form to render
  * @param   DataModel  $model     The model providing our data
  * @param   string    $formType  The form type e.g. 'edit' or 'read'
  *
  * @return  string    The HTML rendering of the form
  */
 public function renderFormRaw(Form &$form, DataModel $model, $formType = null)
 {
     $html = '';
     $tabHtml = array();
     // Do we have a tabbed form?
     $isTabbed = $form->getAttribute('tabbed', '0');
     $isTabbed = in_array($isTabbed, array('true', 'yes', 'on', '1'));
     foreach ($form->getFieldsets() as $fieldset) {
         if ($isTabbed && $this->isTabFieldset($fieldset)) {
             continue;
         } elseif ($isTabbed && isset($fieldset->innertab)) {
             $inTab = $fieldset->innertab;
         } else {
             $inTab = '__outer';
         }
         $tabHtml[$inTab][] = $this->renderFieldset($fieldset, $form, $model, $formType, false);
     }
     // If the form is tabbed, render the tabs bars
     if ($isTabbed) {
         $html .= '<ul class="nav nav-tabs">' . "\n";
         foreach ($form->getFieldsets() as $fieldset) {
             // Only create tabs for tab fieldsets
             $isTabbedFieldset = $this->isTabFieldset($fieldset);
             if (!$isTabbedFieldset) {
                 continue;
             }
             // Only create tabs if we do have a label
             if (!isset($fieldset->label) || empty($fieldset->label)) {
                 continue;
             }
             $label = \JText::_($fieldset->label);
             $name = $fieldset->name;
             $liClass = $isTabbedFieldset == 2 ? 'class="active"' : '';
             $html .= "<li {$liClass}><a href=\"#{$name}\" data-toggle=\"tab\">{$label}</a></li>" . "\n";
         }
         $html .= '</ul>' . "\n\n<div class=\"tab-content\">" . "\n";
         foreach ($form->getFieldsets() as $fieldset) {
             if (!$this->isTabFieldset($fieldset)) {
                 continue;
             }
             $html .= $this->renderFieldset($fieldset, $form, $model, $formType, false, $tabHtml);
         }
         $html .= "</div>\n";
     }
     if (isset($tabHtml['__outer'])) {
         $html .= implode('', $tabHtml['__outer']);
     }
     return $html;
 }