corneltek / formkit
Installs: 2 766
Dependents: 3
Suggesters: 0
Security: 0
Stars: 23
Watchers: 4
Forks: 4
Open Issues: 4
Requires (Dev)
- corneltek/phpunit-testmore: dev-master
README
With FormKit library, you can integrate form widgets with your own frameworks,
And of course, you can define your own form widgets for your applications easily.
Tired with HTML forms ? There are some widget layout engines that can render widget into HTML with HTML table or fieldsets/legends. Of course you can define your own layout engine too!
INSTALL
composer require corneltek/formkit "^1.3"
USAGE
To use a text input widget:
$text = new FormKit\Widget\TextInput('username', array( 'label' => 'Username', 'placeholder' => 'Your name please', 'hint' => 'Please enter 6 characters for your username', )); $text->value( 'default' ) ->size(20); echo $text; // render
Which outputs:
<input type="text" name="username" value="default" placeholder="Your name please" size="20"/> <div class="formkit-hint">Please enter 6 characters for your username</div>
SelectInput:
/* selector with group options */ $countries = new FormKit\Widget\SelectInput( 'country' , array( 'label' => 'Country', 'options' => array( 'Test' => 'Test', 'Asia' => array( 'Taiwan', 'Taipei', 'Tainan', 'Tokyo', 'Korea', ) ) ));
Element API
use FormKit\Element; $ul = new Element('ul'); $li = new Element('li'); $li->append( new Element('a') ); $li->appendText( "DOMText Node here" ); $li->addClass('item'); $li->setId('MyID'); $li->appendTo($ul); echo $li->render();
Layout
To use generic layout:
$layout = new FormKit\Layout\GenericLayout; $layout->width(400); $layout->addWidget( $text ) ->addWidget( $password ) ->addWidget( $remember ) ->addWidget( $birthday ) ->addWidget( $best_time ) ->addWidget( $role ) ->addWidget( $size ) ->addWidget( $countries ) ->cellpadding(6) ->cellspacing(6) ->border(0); echo $layout;
Widget Factory
Form Widget Factory:
use FormKit\FormKit; $username = FormKit::text('username'); $password = FormKit::password('password',array( 'class' => 'your-element-class-name', 'id' => 'your-element-id', 'value' => 'default password', )); echo $username->render(); echo $password->render();
Open Tag & Close Tag
$form = new FormKit\Element\Form(array( 'class' => 'blah blah' )); // render elements manully echo $form->open(); echo $form->renderChildren(); echo $form->close(); // which is equal to echo $form->render();
Availabel Form Widgets
- TextareaInput
- TextInput
- ButtonInput
- CheckboxInput
- ColorInput
- DateInput
- DatetimeInput
- FileInput
- HiddenInput
- Label
- PasswordInput
- RadioInput
- ResetInput
- SelectInput
- SubmitInput
- AjaxCompleteInput
- CanvasInput
Installation
Install assets for demo:
$ assetkit install
License
MIT License