public function createForm() { $form = new \Ip\Form(); $subgridConfig = $this->subgridConfig; $fields = $subgridConfig->fields(); foreach ($fields as $key => $fieldData) { if (isset($fieldData['allowCreate']) && !$fieldData['allowCreate']) { continue; } if (!empty($fieldData['type']) && $fieldData['type'] == 'Tab') { //tabs (fieldsets) $title = ''; if (!empty($fieldData['label'])) { $title = $fieldData['label']; } if ($key == 0) { $fieldsets = $form->getFieldsets(); $fieldset = $fieldsets[0]; $fieldset->setLabel($title); } else { $fieldset = new \Ip\Form\Fieldset($title); $form->addFieldset($fieldset); } $fieldset->addAttribute('id', 'autoGridTabId' . rand(0, 100000000000)); if ($key == 0) { $fieldset->addAttribute('class', 'tab-pane active'); } else { $fieldset->addAttribute('class', 'tab-pane'); } } else { //fields if (!empty($fieldData['multilingual'])) { $languages = ipContent()->getLanguages(); foreach ($languages as $language) { $tmpFieldData = $fieldData; $field = $this->createField($tmpFieldData); $field->setName($field->getName() . '_' . $language->getCode()); if ($field) { $field->setLabel($field->getLabel() . ' ' . $language->getAbbreviation()); $form->addField($field); } } } else { $field = $this->createField($fieldData); if ($field) { $form->addField($field); } } } } if (count($form->getFieldsets()) > 1) { $form->addClass('tab-content'); } $field = new \Ip\Form\Field\Hidden(array('name' => 'method', 'value' => 'create')); $form->addField($field); $field = new \Ip\Form\Field\HiddenSubmit(); $form->addField($field); if ($this->subgridConfig->createFormFilter()) { $form = call_user_func($this->subgridConfig->createFormFilter(), $form); } return $form; }