Modules

Form
extends 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
© 2007-2012 Kohana Team
license
https://kohana.top/license

Class declared in SYSPATH/classes/Form.php on line 3.

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', ['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, ['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) {
            // 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', ['method' => 'get']);

// When "file" inputs are present, you must include the "enctype"
echo Form::open(null, ['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) {
        // 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>';
}