public function render() { $form = new Tag('form', NULL, $this->_attributes); $output[] = $form->open(); if (isset($this->_field) && is_array($this->_field)) { foreach ($this->_field as $key => $value) { $input = new Input(); $render_input[] = $input->build($value['label'], $value['name'])->{$value}['type']($value['value'])->render(); } $output[] = implode(PHP_EOL, $render_input); $output[] = (new Tag('button', 'Submit', ['class' => ['btn', 'btn-default']]))->render(); } else { $output[] = $this->_field; $output[] = (new Tag('button', 'Submit', ['class' => ['btn', 'btn-default'], 'type' => 'submit']))->render(); } $output[] = $form->close(); return implode(PHP_EOL, $output); }
public function add_item($item) { if ($item instanceof Group) { $this->_items[] = clone $item; } elseif (isset($item['input'])) { $group = new Group(Group::FORM_GROUP); // Set Input Label if (isset($item['label'])) { if (isset($item['label']['show']) and $item['label']['show'] === TRUE) { $attr = isset($item['label']['attr']) ? $item['label']['attr'] : ['for' => $item['input']['name']]; $label = new Tag('label', $item['label']['text'], $attr); $label->add_class('control-label'); if (isset($item['label']['tag'])) { $label->set_tag($item['label']['tag']); } $group->add_item($label); } } // Set Input $input = new Input(); $input->set_type($item['input']['type']); $input->set_attributes($item['input']['attr']); if (isset($item['input']['options'])) { $input->set_options($item['input']['options']); } $properties = $item['input']; unset($properties['type'], $properties['attr'], $properties['options']); $input->set_properties($properties); // Set Value if (!empty($item['input']['value'])) { $input->set_value($item['input']['value'], TRUE); } if (isset($item['container'])) { $container = new Tag('div', $input, $item['container']['attr']); if (isset($item['container']['tag'])) { $container->set_tag($item['container']['tag']); } $group->add_item($container); } else { $group->add_item($input); } // Set Help if (!empty($item['help'])) { $group->add_item(new Tag('span', $item['help'], ['class' => 'help-block help-control'])); } $this->_items[] = $group; } }