Class Kohana_Form

Kohana_Form

Form helper class. Unless otherwise noted, all generated HTML will be made safe using the HTML::chars method. This prevents against simple XSS attacks that could otherwise be triggered by inserting HTML characters into form fields.

package
Kohana
category
Helpers
author
Kohana Team
copyright
(c) Kohana Team
license
https://koseven.ga/LICENSE.md


Methods

public static button(string $name , string $body [, array $attributes = NULL ] ) (defined in Kohana_Form)

Creates a button form input. Note that the body of a button is NOT escaped, to allow images and other HTML to be used.

echo Form::button('save', 'Save Profile', array('type' => 'submit'));

Parameters

  • string $name required - Input name
  • string $body required - Input value
  • array $attributes = NULL - Html attributes

Tags

Return Values

  • string

Source Code

public static function button($name, $body, array $attributes = NULL)
{
	// Set the input name
	$attributes['name'] = $name;

	return '<button'.HTML::attributes($attributes).'>'.$body.'</button>';
}

public static checkbox(string $name [, string $value = NULL , boolean $checked = bool FALSE , array $attributes = NULL ] ) (defined in Kohana_Form)

Creates a checkbox form input.

echo Form::checkbox('remember_me', 1, (bool) $remember);

Parameters

  • string $name required - Input name
  • string $value = NULL - Input value
  • boolean $checked = bool FALSE - Checked status
  • array $attributes = NULL - Html attributes

Tags

Return Values

  • string

Source Code

public static function checkbox($name, $value = NULL, $checked = FALSE, array $attributes = NULL)
{
	$attributes['type'] = 'checkbox';

	if ($checked === TRUE)
	{
		// Make the checkbox active
		$attributes[] = 'checked';
	}

	return Form::input($name, $value, $attributes);
}

public static close() (defined in Kohana_Form)

Creates the closing form tag.

echo Form::close();

Return Values

  • string

Source Code

public static function close()
{
	return '</form>';
}

public static file(string $name [, array $attributes = NULL ] ) (defined in Kohana_Form)

Creates a file upload form input. No input value can be specified.

echo Form::file('image');

Parameters

  • string $name required - Input name
  • array $attributes = NULL - Html attributes

Tags

Return Values

  • string

Source Code

public static function file($name, array $attributes = NULL)
{
	$attributes['type'] = 'file';

	return Form::input($name, NULL, $attributes);
}

public static hidden(string $name [, string $value = NULL , array $attributes = NULL ] ) (defined in Kohana_Form)

Creates a hidden form input.

echo Form::hidden('csrf', $token);

Parameters

  • string $name required - Input name
  • string $value = NULL - Input value
  • array $attributes = NULL - Html attributes

Tags

Return Values

  • string

Source Code

public static function hidden($name, $value = NULL, array $attributes = NULL)
{
	$attributes['type'] = 'hidden';

	return Form::input($name, $value, $attributes);
}

public static image(string $name , string $value [, array $attributes = NULL , boolean $index = bool FALSE ] ) (defined in Kohana_Form)

Creates a image form input.

echo Form::image(NULL, NULL, array('src' => 'media/img/login.png'));

Parameters

  • string $name required - Input name
  • string $value required - Input value
  • array $attributes = NULL - Html attributes
  • boolean $index = bool FALSE - Add index file to URL?

Tags

Return Values

  • string

Source Code

public static function image($name, $value, array $attributes = NULL, $index = FALSE)
{
	if ( ! empty($attributes['src']))
	{
		if (strpos($attributes['src'], '://') === FALSE AND strncmp($attributes['src'], '//', 2))
		{
			// Add the base URL
			$attributes['src'] = URL::base($index).$attributes['src'];
		}
	}

	$attributes['type'] = 'image';

	return Form::input($name, $value, $attributes);
}

public static input(string $name [, string $value = NULL , array $attributes = NULL ] ) (defined in Kohana_Form)

Creates a form input. If no type is specified, a "text" type input will be returned.

echo Form::input('username', $username);

Parameters

  • string $name required - Input name
  • string $value = NULL - Input value
  • array $attributes = NULL - Html attributes

Tags

Return Values

  • string

Source Code

public static function input($name, $value = NULL, array $attributes = NULL)
{
	// Set the input name
	$attributes['name'] = $name;

	// Set the input value
	$attributes['value'] = $value;

	if ( ! isset($attributes['type']))
	{
		// Default type is text
		$attributes['type'] = 'text';
	}

	return '<input'.HTML::attributes($attributes).' />';
}

public static label(string $input [, string $text = NULL , array $attributes = NULL ] ) (defined in Kohana_Form)

Creates a form label. Label text is not automatically translated.

echo Form::label('username', 'Username');

Parameters

  • string $input required - Target input
  • string $text = NULL - Label text
  • array $attributes = NULL - Html attributes

Tags

Return Values

  • string

Source Code

public static function label($input, $text = NULL, array $attributes = NULL)
{
	if ($text === NULL)
	{
		// Use the input name as the text
		$text = ucwords(preg_replace('/[\W_]+/', ' ', $input));
	}

	// Set the label target
	$attributes['for'] = $input;

	return '<label'.HTML::attributes($attributes).'>'.$text.'</label>';
}

public static open([ mixed $action = NULL , array $attributes = NULL ] ) (defined in Kohana_Form)

Generates an opening HTML form tag.

// Form will submit back to the current page using POST
echo Form::open();

// Form will submit to 'search' using GET
echo Form::open('search', array('method' => 'get'));

// When "file" inputs are present, you must include the "enctype"
echo Form::open(NULL, array('enctype' => 'multipart/form-data'));

Parameters

  • mixed $action = NULL - Form action, defaults to the current request URI, or [Request] class to use
  • array $attributes = NULL - Html attributes

Tags

Return Values

  • string

Source Code

public static function open($action = NULL, array $attributes = NULL)
{
	if ($action instanceof Request)
	{
		// Use the current URI
		$action = $action->uri();
	}

	if ( ! $action)
	{
		// Allow empty form actions (submits back to the current url).
		$action = '';
	}
	elseif (strpos($action, '://') === FALSE AND strncmp($action, '//', 2))
	{
		// Make the URI absolute
		$action = URL::site($action);
	}

	// Add the form action to the attributes
	$attributes['action'] = $action;

	// Only accept the default character set
	$attributes['accept-charset'] = Kohana::$charset;

	if ( ! isset($attributes['method']))
	{
		// Use POST method
		$attributes['method'] = 'post';
	}

	return '<form'.HTML::attributes($attributes).'>';
}

public static password(string $name [, string $value = NULL , array $attributes = NULL ] ) (defined in Kohana_Form)

Creates a password form input.

echo Form::password('password');

Parameters

  • string $name required - Input name
  • string $value = NULL - Input value
  • array $attributes = NULL - Html attributes

Tags

Return Values

  • string

Source Code

public static function password($name, $value = NULL, array $attributes = NULL)
{
	$attributes['type'] = 'password';

	return Form::input($name, $value, $attributes);
}

public static radio(string $name [, string $value = NULL , boolean $checked = bool FALSE , array $attributes = NULL ] ) (defined in Kohana_Form)

Creates a radio form input.

echo Form::radio('like_cats', 1, $cats);
echo Form::radio('like_cats', 0, ! $cats);

Parameters

  • string $name required - Input name
  • string $value = NULL - Input value
  • boolean $checked = bool FALSE - Checked status
  • array $attributes = NULL - Html attributes

Tags

Return Values

  • string

Source Code

public static function radio($name, $value = NULL, $checked = FALSE, array $attributes = NULL)
{
	$attributes['type'] = 'radio';

	if ($checked === TRUE)
	{
		// Make the radio active
		$attributes[] = 'checked';
	}

	return Form::input($name, $value, $attributes);
}

public static select(string $name [, array $options = NULL , mixed $selected = NULL , array $attributes = NULL ] ) (defined in Kohana_Form)

Creates a select form input.

echo Form::select('country', $countries, $country);

Support for multiple selected options was added in v3.0.7.

Parameters

  • string $name required - Input name
  • array $options = NULL - Available options
  • mixed $selected = NULL - Selected option string, or an array of selected options
  • array $attributes = NULL - Html attributes

Tags

Return Values

  • string

Source Code

public static function select($name, array $options = NULL, $selected = NULL, array $attributes = NULL)
{
	// Set the input name
	$attributes['name'] = $name;

	if (is_array($selected))
	{
		// This is a multi-select, god save us!
		$attributes[] = 'multiple';
	}

	if ( ! is_array($selected))
	{
		if ($selected === NULL)
		{
			// Use an empty array
			$selected = [];
		}
		else
		{
			// Convert the selected options to an array
			$selected = [ (string) $selected];
		}
	}

	if (empty($options))
	{
		// There are no options
		$options = '';
	}
	else
	{
		foreach ($options as $value => $name)
		{
			if (is_array($name))
			{
				// Create a new optgroup
				$group = ['label' => $value];

				// Create a new list of options
				$_options = [];

				foreach ($name as $_value => $_name)
				{
					// Force value to be string
					$_value = (string) $_value;

					// Create a new attribute set for this option
					$option = ['value' => $_value];

					if (in_array($_value, $selected))
					{
						// This option is selected
						$option[] = 'selected';
					}

					// Change the option to the HTML string
					$_options[] = '<option'.HTML::attributes($option).'>'.HTML::chars($_name, FALSE).'</option>';
				}

				// Compile the options into a string
				$_options = "\n".implode("\n", $_options)."\n";

				$options[$value] = '<optgroup'.HTML::attributes($group).'>'.$_options.'</optgroup>';
			}
			else
			{
				// Force value to be string
				$value = (string) $value;

				// Create a new attribute set for this option
				$option = ['value' => $value];

				if (in_array($value, $selected))
				{
					// This option is selected
					$option[] = 'selected';
				}

				// Change the option to the HTML string
				$options[$value] = '<option'.HTML::attributes($option).'>'.HTML::chars($name, FALSE).'</option>';
			}
		}

		// Compile the options into a single string
		$options = "\n".implode("\n", $options)."\n";
	}

	return '<select'.HTML::attributes($attributes).'>'.$options.'</select>';
}

public static submit(string $name , string $value [, array $attributes = NULL ] ) (defined in Kohana_Form)

Creates a submit form input.

echo Form::submit(NULL, 'Login');

Parameters

  • string $name required - Input name
  • string $value required - Input value
  • array $attributes = NULL - Html attributes

Tags

Return Values

  • string

Source Code

public static function submit($name, $value, array $attributes = NULL)
{
	$attributes['type'] = 'submit';

	return Form::input($name, $value, $attributes);
}

public static textarea(string $name [, string $body = string(0) "" , array $attributes = NULL , boolean $double_encode = bool TRUE ] ) (defined in Kohana_Form)

Creates a textarea form input.

echo Form::textarea('about', $about);

Parameters

  • string $name required - Textarea name
  • string $body = string(0) "" - Textarea body
  • array $attributes = NULL - Html attributes
  • boolean $double_encode = bool TRUE - Encode existing HTML characters

Tags

Return Values

  • string

Source Code

public static function textarea($name, $body = '', array $attributes = NULL, $double_encode = TRUE)
{
	// Set the input name
	$attributes['name'] = $name;

	// Add default rows and cols attributes (required)
	$attributes += ['rows' => 10, 'cols' => 50];

	return '<textarea'.HTML::attributes($attributes).'>'.HTML::chars($body, $double_encode).'</textarea>';
}

Do you want to contribute to Koseven?

We need YOUR help!

This project is open source. What does this mean? YOU can help:
  • Found a bug? Report it on Github
  • Need a feature? Add it Here
  • Want to help? Join the Forum
Go to Github