corneltek/formkit

1.4.0 2017-06-26 02:40 UTC

README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads

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