Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
SqUI - a UI generation bundle for the Laravel PHP framework. Generates very customizable tables and forms from sensible syntax.
PHP JavaScript
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
form
public
table
tests
views
README.md
docs.php
form.php
html_element.php
start.php
table.php

README.md

Squi Bundle for Laravel

Currently Squi consists of two UI helpers: Table and Form. Squi is installable via the Artisan CLI:

php artisan bundle:install squi

After installation, you can either auto-load the bundle in bundles.php:

return array(
    'squi' => array('auto' => true),
);

Or start the bundle on demand:

Bundle::start('squi');

Table

Creating a simple table:

// Grab some objects to play with
$things = Client::all();

$table = Squi\Table::make()
    ->with('columns', array(
        'name',
        'birth_date' => 'Birthdate',
    ))
    ->with('rows', $things);

This will create a table with the headings Name (capitalized from "name") and Birthdate. Each row will contain the values for the keys/properties name and birth_date, respectively. Simple, right?

But often we want to do fancier, one-off things with our tables. No problem:

$table = Squi\Table::make()
    ->with('columns', array(
        'name' => array(
            'heading' => 'Client Name',
            'value' => function($row)
            {
                return $row->firstname.' '.$row->lastname;
            },
            'cell_attr' => function($row)
            {
                return array('style' => 'font-weight: bold;');
            },
        ),
        'birth_date' => array(
            'heading' => 'Birthdate',
            'value' => function($row)
            {
                return date('d-M Y', $row->birth_date);
            },
        ),
    ))
    ->with('row_attr', function($row)
    {
        return array('data-uri' => 'clients/'.$row->id);
    })
    ->with('class', 'table-striped');

Clone the repo and hit the URI /squi/docs for full documentation.

Form

Laravel has a fantastic set of form element helpers, but Squi takes it a step further to allow you to generate an entire laid-out form in just a few lines. Here's an example of a user registration form:

$fields = array(
    'name',
    'email',
    'password:password',
    'password2:password' => 'Confirm Password',
    'user_source:select' => array(
        'label' => 'How did you hear about us?',
        'options' => array(
            'friend' => 'From a friend',
            'google' => 'Google search',
            'other' => 'Other'
        ),
    ),
);

$form = Squi\Form::make($fields)->with('action', 'users/new');

Like the Table library, Squi\Forms are very much open to fine customizations. Clone the repo and hit the URI /squi/docs for full documentation and plenty of examples.

Fork Me!

Squi is very young, and I'm open to any suggestions and pull requests.

Something went wrong with that request. Please try again.