Skip to content
This repository has been archived by the owner on Dec 31, 2020. It is now read-only.

yuki0410-dev/FuelPHP-Fieldset

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fuel Fieldset Package.

Overview

This Package provide Fieldset class for various layouts.

Installing

Simply add fieldset to your config.php always_loaded.packages config option.

Usage

class Fieldset_Sample extends \Fuel\Fieldset\Fieldset
{
	/**
	 * Create Fieldset object
	 *
	 * @param   string    $name    Identifier for this fieldset
	 * @param   array     $config  Configuration array
	 * @return  Fieldset
	 */
	public static function forge($name = null, array $config = array())
	{
		$fieldset = parent::forge(name, config);

		// add name
		$fieldset->add(
			'name',
			'Full name',
			array(
				'type' => 'name',
				'class' => 'pretty_input'
			),
			array(
				array(
					'required'
				),
				array(
					'valid_string',
					array(
						'alpha-numeric',
						'dots',
						'spaces'
					)
				)
			)
		);

	}
}
class Controller_Sample extends Controller
{
	/**
	 * Index Action
	 *
	 * @return  string
	 */
	public function action_index()
	{
		$fieldset = Fieldset_Sample::forge();

		$mode = Input::post('button');

		if ($mode === 'confirm')
		{
			// confirm
			$validation = $fieldset->validation();

			if ($validation->run())
			{
				// validation OK
				$fields = $validation->validated();

				// create view
				$view = Presenter::forge('sample/confirm');
				// set fields
				$view->set('fields', $fields);
				// show confirm view
				return Response::forge($view);
			}
			else
			{
				// validation NG

				// set input values
				$fieldset->repopulate();
			}
		}
		else if ($mode === 'exec')
		{
			// exec
			$validation = $fieldset->validation();

			if ($validation->run())
			{
				// validation OK
				$fields = $validation->validated();

				// Do Exec

				// redirect to complete
				Response::redirect('sample/complete', 'location', 303);

			}
			else
			{
				// validation NG

				// set input values
				$fieldset->repopulate();
			}
		}
		else if ($mode === 'back')
		{
			// back

			// set input values
			$fieldset->repopulate();
		}

		// create view
		$view = Presenter::forge('sample/input');
		// set fields
		$view->set_safe('fields', $fieldset->build_field());
		// show confirm view
		return Response::forge($view);
	}

	/**
	 * Complete Action
	 *
	 * @return  string
	 */
	public function action_complete()
	{
		// create view
		$view = Presenter::forge('sample/complete');
		// show complete view
		return Response::forge($view);
	}
}
// input view
<?php echo \Form::open().PHP_EOL; ?>
	<div class="form-group <?php echo \Arr::get($fields, 'name.error_class') ?>">
		<label>Full name</label>
		<?php echo \Arr::get($fields, 'name.field'); ?>
	</div>
	<button type="submit" class="btn btn-default" value="confirm">Confirm</button>
<?php echo \Form::close().PHP_EOL; ?>
// confirm view
<?php echo \Form::open().PHP_EOL; ?>
	<div class="form-group <?php echo \Arr::get($fields, 'name.error_class') ?>">
		<label>Full name</label>
		<?php echo \Arr::get($fields, 'name').PHP_EOL; ?>
		<?php echo \Form::hidden('name', \Arr::get($fields, 'name')).PHP_EOL; ?>
	</div>
	<button type="submit" class="btn btn-default" value="back">Back</button>
	<button type="submit" class="btn btn-default" value="exec">Submit</button>
<?php echo \Form::close().PHP_EOL; ?>

About

A Fieldset package for FuelPHP

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages